ANKI_TRACE_STOP_FRAME gathers all the event information and appends them in a .json file
is this .json some public format that I can export to?
Microsoft has one app named concurrency visualized, I though of using that but it is a very crude app.
and as everything MS does is proprietary, so in the long run that will not work.
I for now will do windows, by there is nothing particular that makes it window only.
I almost have the server code written, is a dll and is use the same way you shows,
I still have much work to do but this is how is look like now.
- Code: Select all
#define dTimeTrackerCreateThread(name) \
dTimeTracker::GetInstance()->CreateThread (name);
#define dTimeTrackerTrackTime(name) \
static dCRCTYPE __crcName__ = dTimeTracker::GetInstance()->RegisterName (name); \
dTimeTracker::dTimeTrackerEntry ___trackerEntry___(__crcName__);
#define dTimeTrackerSync() \
{ \
dTimeTrackerTrackTime("timeTracker") \
dTimeTracker::GetInstance()->SavaData (); \
}
basically those macros will save the time information per frame per thread, and save then to a file.
My plan is to make so that is profile a finite number of frame. say 100 or 200, it could be configurable.
Now I need the document viewer which I will use C# for simplicity.
I did some test already and it works, but then I removed the macros placement because I want to add it to a new configuration.
If you sync the code will find a new third party project called timeTracker that implement the sever code.
I do no think it will be too hard to get this going , and I believe it will be nicer that I first thought.
I have to do that because there are some areas of the engine that are optimized, and it would be hard to make faster, the bigger problem is the load balance in multithreaded mode.
Basically I nee per frame localized profiler data, that something that sampling profiler like vtune, Very Sleepy or AMD do not do.