I'm very excited to announce volPROFILER, an event profiler for Fusion that measures your game's performance with unprecedented accuracy! This tool makes it super easy to identify bottlenecks in your code so you can focus your optimisation efforts where they will make the most real-world difference.
Background:
Until now, it's been impossible to measure the processing times of Fusion events with any meaningful accuracy. The timer object measures only in milliseconds, and can only measure between one frame and the next, not inside the frame. The Date & Time object can measure inside the frame, but only in hundredths of a second. Both methods are much too coarse to be useful for performance profiling.
To achieve 60fps, your game must average less than 16.7 milliseconds per frame. That includes not just code, but draw calls, DirectX stuff, clickteam movements, animation processing, Fusion's overhead, OS overhead etc. Therefore your code needs to take much less than 16.7ms to execute - perhaps less than half of that. And since your code is probably comprised of many components (movement, enemy AI, input, audio, HUD, etc.) you'll want most or all of those components to fall well below 1ms each. So trying to measure some small portion of your code using the timer (1ms accuracy) would be near-useless even if it let you measure within the frame (it doesn't). Using the date & time object (10ms accuracy) wouldn't even come close.
To solve this problem, I specially commissioned the famous Looki (even if you haven't heard the name before, there's a good chance you already use some of his shaders or extensions) to build a timer object that's capable of measuring in microseconds (millionths of a second, or μs), within the frame. This object is called Microtimer, and I'm making it freely available to everyone - it should already be findable in your extension manager by the time you read this (if not, get it here). You can quite easily use it to build an in-game timer that measures bits of your code.
But if you would like a comprehensive, carefully-designed and user-friendly profiler, and want to save yourself a few days' work (and help me offset the cost of commissioning the microtimer) then you can get the solution I've built, volPROFILER, for 2.99 on the Clickstore.
volPROFILER features:
* Easy to use. 3 minutes to setup!
* Toggleable in-game panel shows execution time of your code, as well as time taken between code loops
* Uses the new Microtimer object by Looki (commissioned by me, specially for volPROFILER!) for unprecedented accuracy.
* All results shown in 3 ways: real-time (for frame-by-frame analysis), delayed-update (for easy readability), and cumulative average (for optimal reliability).
* 12 slots to monitor any code segments you like - just drag the readymade volPROFILER event groups around your chosen code and volPROFILER does the rest!
* Displays performance of all unmonitored code to expose hidden bottlenecks
* μs mode: displays all results as absolute time elapsed, in microseconds
* % mode: helps you quickly find your most expensive code
* tb mode: shows each code segment's consumption of your time budget, or how fast all code should execute to ensure smooth 60fps (calculated as 16667 μs minus average between-frames time)
* fc mode: shows the percentage of a single frame that each code chunk consumes at your current average framerate.
* volPROFILER panel overhead time is measured and shown, but excluded from all other results, so it won't pollute your findings
* Continues to collect performance data for you even when panel not in use, with very tiny footprint (measured at approx. 4μs, or 0.000004 seconds per frame)
* Contains in-game help panel
* Integrates seamlessly with VACCiNE
* Open Source - made with well-commented Fusion events so you can easily modify it if you wish
* Instantly save results to txt file with a keypress
volPROFILER on the Clickstore:
You can purchase volPROFILER for 2.99 here: http://clickstore.clickteam.com/volprofiler