Why You Should Monitor Applications, Not Processes

One of the many things you come to love once you have used uberAgent for a little while is the fact that it is very application-centric. Applications are what really matters, not the individual processes they are comprised of. I will give you an example of that in this post.

Automatic Application Identification

For every running process uberAgent determines the name of the application the process is a part of. That happens automatically and works for regular Win32 applications just as well as it does for UWP apps (AKA “modern” Windows apps) or Java applications.

Why is this special? The Windows operating system has no concept of applications as logical entities. There is no API to map processes to applications or vice versa. The magic is happening right in uberAgent.

With knowledge about applications, all of uberAgent’s rich performance and user experience metrics can be presented at the process level as well as on the application level. Read on for an example where that distinction is crucial.

Example: Firefox Browser Performance

When I recently analyzed browser video playback performance I was surprised by Firefox’ apparent efficiency. According to Task Manager it only used 1.1% CPU and 121 MB of RAM while playing back a 1080p movie on Netflix:

uberAgent, on the other hand, reported very different numbers: 8.3% CPU and 533 MB of RAM:

Why this difference?

Why Task Manager can be Misleading

Task Manager and most monitoring tools display performance metrics per process. This often makes things unnecessarily difficult.

For starters, Firefox uses multiple firefox.exe processes. In order to determine Firefox’ resource utilization one has to add up their numbers:

But even when combining the three firefox.exe instances there is still a missing piece:

Firefox plays protected web video by way of a plugin – and plugins are hosted in a dedicated process for reasons of security and stability. With that in mind one needs to identify instances of Firefox’ plugin container executable, plugin-container.exe and include their performance numbers in the calculation:

As you can see in the screenshot above, plugin-container.exe adds quite significant CPU load, so one would not want to miss it.

Automating the Process

Even this rather simple example shows that coming up with accurate performance numbers for an application of interest can be quite cumbersome. The good news is: you do not have to. uberAgent does it all for you, fully automatically. Try it for yourself: downloading and installing only take a few minutes but might save you hours very quickly.

Leave a Reply

Your email address will not be published. Required fields are marked *