Jump to content

Microprofiler output


photo

Recommended Posts

Hi,

I'm having hard time figuring out why microprofiler webpage output blocks look the way they look:

image.png.e1ea69c60d65b0879b217e40b69b49c5.png

I mean, the engine main thread is doing:

	while (isDone() == 0)
	{
		doUpdate();
		doRender();
		doSwap();
	}

So why is doUpdate containing the Swap and Engine::do_swap?

And why is spreading partially on the previous frame (before the vertical white line) and partially in the current frame? I understand that a frame from microprofiler point of view is between the 2 vertical lines (the recordings between two profiler flips).

Is this a bug of nesting microprofiling scopes or can be explained otherwise?

Regards,
Adrian

Link to comment

Hi Adrian,

This looks like a bug to me. Maybe present counter is not placed where it should be. We will see what we can do about this in the future releases, since that issue is quite old,

 

Quote

And why is spreading partially on the previous frame

That's the mystery that we are also wondering about. Maybe there is just a html/js generator issue. You can also notice that if you are looking on a big capture with 500+ frames vertical lines and bars are no longer being aligned correctly. Also GPU / CPU counters are also can be out of sync. But in general profiler values itself are correct and you still can get the whole picture and do optimizations based on these values as usual.

How to submit a good bug report
---
FTP server for test scenes and user uploads:

Link to comment

Thank you for the reply. At least now I know that is a known issue :)

In rest we are pretty satisfied with microprofiler, but there are several things that we miss:

- Important for us: possibility to automatically dump certain frames. For example: frames that take longer than XX milliseconds. As it is, you cannot really catch "rogue" frames that take longer than usual and happen very rarely.

- Cannot configure microprofiler by API (e.g. how many captured frames, since this has a great impact on mem consumption, sometimes I want many (hundreds), sometimes I want only few to not affect performance etc).

- Webpage view UX improvements: when looking at Counters, I don't know for sure if this refer to a certain frame, an average of all capture etc. I cannot click for example on biggest value and the view to automatically go to Details when that happen etc. 

- Several other bugs, mostly for webpage view: clicking on the column of counters will make the details view temporarily visible, cannot scroll in counters view, CONTROL+mouse wheel to change the page view level will also change the microprofiler view range etc.

Can you please also consider this for the future? Or can you provide a "suggestion box" where we can send them? I know you said that you want to dump microprofiler (for another solution) but most of the above are easy to implement inside the engine until the new solution comes.

Many thanks!

Link to comment

Thanks for the suggestions. Some of them are already noted in our internal TODO list.

Unfortunately, most of the UX/UI things are buried deeply into the auto-generated HTML/JS code that we simply don't have enough time and competence to debug to.

Regarding the API control - you can run the console commands via API and add some custom logic in your application that will do what you need. At least I think you should be able to control number of web frames and capture frames and trigger microprofile dump when the frame time is larger than your required target. But triggering dump will also result in a frame time being more than your threshold, so you can stuck in the infinity loop :)

  • Like 1

How to submit a good bug report
---
FTP server for test scenes and user uploads:

Link to comment
×
×
  • Create New...