CPU Utilization

Hey there,

I was just wondering what exactly the CPU Utilization line means in the test results and how to interpret it?

I am assuming this is a record of CPU usage during the test. However, is only one test being performed on the server during the test time period? Would other variables effect the CPU Utilization line?

I also would assume that CPU utilization spikes are when JavaScript code executes?

Is it normal for a website to use 100 percent CPU utilization during a few seconds on a page request?

Thanks for any information.

Travis Walters

The CPU utilization line is the CPU utilization of just the browser process that is running the test (same as you would see in task manager) on a fixed scale from 0-100% (sampled in 0.1 sec intervals).

There are lots of things that cause the CPU utilization to spike but javascript is a very common contributor (particularly if there are gaps in the waterfall where the CPU is pegged at 100% - telltale sine of javascript that needs optimizing). The CPU will also get exercised as the browser figures out how to layout the page and apply styles and finally, the testing itself can also introduce some spikes (really short spikes when the screen shots are taken for example). If you capture a video then the impact of recording the screen shots will be higher.

Usually if I see something that looks suspicious I’ll load it up into Dynatrace Ajax Edition (great free profiler for IE) and run the page through to see if anything jumps out. I’d love to integrate the capture of the profiling data at some point in the future.

Even though it wouldn’t really impact the numbers, right now only one test is ever executing on a given machine at a time. We can (and have) run configurations with multiple tests at the same time but when video capture was introduced it killed our ability to run in parallel. I’m experimenting with running the tests in VM’s to see if I can get more testing capacity out of the hardware because the machines are pretty beefy and could easily handle 8+ tests in parallel but I won’t do it if it introduces any variability into the results.

Hope that helps,


Hi Patrick,

Is there way to get the CPU utilization data for the JS (loads, executes) in every step if my script has a multi step flow. Will this data be available in the results xml file for particular job id. Ex: https://webpagetest.org/result/171117_D8_3a52572b96f10cc42987f6e77cf3cafc/1/details/#waterfall_view_step4

Thanks !