As it turns out Urho3D has very VERY basic profiler which is of limited use. Since i have unexplainable performance issues with my attempt at android game i decided to take up the task.
You can check out the code on github. Use as you wish but do not fork. I will overwrite/rebase -i
those commits there to maintain perfect git history.
Main highlights:
- Reworked bunch of code to avoid as much dynamic memory allocation as possible. Doing that on every interval is costly. Now logging every frame is realistic.
- Cleaned up profiling code from seemingly unrelated places (Timer/Context).
- Added ability to save profiling data to file.
- Added setting to gather statistics only on N intervals. Now profiler can run indefinitely and once you reproduce the issue you can save profiling data of certain timeframe for inspection.
- Added Qt5-based profiling data viewer tool.
- Added system for supplying multiple data sinks to profiler for data consumption. DebugHud was reworked to use that system.
I am not done yet though. Ultimate plan is to create network data sink for profiler so we can stream profiling data live from running application to the tool. This should simplify profiling of mobile devices a lot.
If these changes are acceptable i would love merging them upstream. If you have any ideas - i would love to hear them.