I'm trying to understand a few things about the timeline in the Chrome Dev Tools. From the documentation, I gather that the grey and clear bars are "Activity that was not instrumented by DevTools" and "Idle time between display refresh cycles", respectively.
I have an app that renders updates each frame (requestAnimationFrame()
) and has a typical timeline profile pictured below:
Unfortunately, to me the documentation does not make it clear how to evaluate the grey and white space in my application. My questions are:
In other words, is the profile I'm seeing expected, in regard to the white bars? I'm tempted to assume so, but the example screenshot in the documentation looks like:
There are clearly frames where the white space does not fill the space between renders.
In the profile below, about 40% of the time is idle, so could I expect that to correspond to using ~60% of a core for the operations represented in the profile?
Or are there typical things which this could be (Garbage Collection, etc...)?
Hopefully that is not too much for one question. Thanks in advance
Select Show Layout from the Command Menu (Cmd + Shift + P). Explore the different options available here, such as: Toggling Grid overlays on and off. Enabling track sizes , area names and extended grid lines .
This is idle time, the time when the browser is waiting on the CPU or GPU to do some processing. It is shown in the pie chart screenshot in the documentation page How to Use the Timeline Tool.
Will the "idle" clear bars always fill the time between renders?
No. This idle time is essentially GPU bound. It is where the browser is waiting on the GPU to do its thing and return. It is perfectly fine to have fluctuation here, so long as you're hitting roughly 60FPS, it's all good.
Is there a rough relationship between the timeline profile and cpu utilization on the machine the profile is collected on?
Not really as far as I am aware. Idle here is time where the browser is waiting for some other part of the system (CPU or GPU primarily) to do its job. It isn't related to how many resources it is using.
Is there any way to characterize the "Uninstrumented" grey bars?
Absolutely not, this is why it is called "Uninstrumented". It means the DevTools has no idea what is going on. Things like Garbage Collection do get marked on the timeline, since it knows what that task is. The team is working on narrowing down this type of material. It is a slow process to track it all down and figure out how to surface it to DevTools, so we will have uninstrumented time for quite a while.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With