Which is the best tool or method to use to determine if the new software is hogging computer resources?

Software testing arrived alongside the development of software, which had its beginnings just after the second world war. Computer scientist Tom Kilburn is credited with writing the first piece of software, which debuted on June 21, 1948, at the University of Manchester in England. It performed mathematical calculations using machine code instructions.

Debugging was the main testing method at the time and remained so for the next two decades. By the 1980s, development teams looked beyond isolating and fixing software bugs to testing applications in real-world settings. It set the stage for a broader view of testing, which encompassed a quality assurance process that was part of the software development life cycle.

“In the 1990s, there was a transition from testing to a more comprehensive process called quality assurance, which covers the entire software development cycle and affects the processes of planning, design, creation and execution of test cases, support for existing test cases and test environments,” says Alexander Yaroshko in his post on the uTest developer site.

“Testing had reached a qualitatively new level, which led to the further development of methodologies, the emergence of powerful tools for managing the testing process and test automation tools.” 1

Continuous testing

Software testing has traditionally been separated from the rest of development. It is often conducted later in the software development life cycle after the product build or execution stage. A tester may only have a small window to test the code – sometimes just before the application goes to market. If defects are found, there may be little time for recoding or retesting. It is not uncommon to release software on time, but with bugs and fixes needed. Or a testing team may fix errors but miss a release date.

Doing test activities earlier in the cycle helps keep the testing effort at the forefront rather than as an afterthought to development. Earlier software tests also mean that defects are less expensive to resolve.

Many development teams now use a methodology known as continuous testing. It is part of a DevOps approach – where development and operations collaborate over the entire product life cycle. The aim is to accelerate software delivery while balancing cost, quality and risk. With this testing technique, teams don’t need to wait for the software to be built before testing starts. They can run tests much earlier in the cycle to discover defects sooner, when they are easier to fix.

Skip to main content

This browser is no longer supported.

Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support.

High CPU usage troubleshooting guidance

  • Article
  • 04/15/2022
  • 5 minutes to read

In this article

This article helps you identify the cause of sustained high CPU usage. Keep in mind that you can expect CPU usage to increase as a process or an application serves requests. However, if you consistently see CPU usage remain at a high level (80 percent or greater) for prolonged periods, the performance of your system or application will suffer. For that reason, it's important to understand the cause of sustained high CPU usage to be able to correct the problem, if possible.

Task Manager

Use Task Manager to view CPU consumption to help identify the process or application that's causing high CPU usage:

  1. Select Start, enter task, and then select Task Manager in the search results.
  2. The Task Manager window defaults to the Processes tab. If you see a single list of process names in the Name column, you can expand any instances of grouped processes.
  3. Select the CPU column header to sort the list by CPU usage. Make sure that the arrow that appears on the header points down to sort the data from highest to lowest CPU consumption.

If the process can be stopped, or a related service can be disabled, stop the process or the service. Then, check whether this mitigates the problem.

Resource Monitor

Use the Resource Monitor to view CPU consumption:

  1. Select Start, enter resmon, and then select Resource Monitor from the search results.

  2. In the Resource Monitor window, select the CPU tab.

    Note

    You might have to maximize the window to see all the data.

  3. Select the Average CPU column header to sort the list by overall CPU usage. Make sure that the arrow that appears on the header points down to sort the data from highest to lowest CPU consumption.

If any of the processes show a higher-than-expected rate of consumption for your environment, consider these top processes first when you try to determine the cause of the problem.

Process Explorer

The Process Explorer tool gives you a complete overview on which processes are currently running on your computer, including details about who invoked the processes, and how much of the total system resources they're consuming.

If you want to verify an operating system-related process (for example, System), follow these steps:

  1. Run Process Explorer as an administrator.
  2. Right-click the process, select Properties, and then select the Threads tab.
  3. Select the thread that consumes high CPU, and then select Stack to view the functions that are being run.

Note

To get a better stack information result, configure symbols in the Process Explorer. To do this, follow these steps:

  1. Install Debugging Tools for Windows.
  2. Run Process Explorer as an administrator.
  3. Select the Options menu, and then select Configure Symbols.
  4. Change the Dbghelp.dll path to C:\Program Files (x86)\Windows Kits\10\Debuggers\x64\dbghelp.dll, and then select OK.

Common troubleshooting scenarios

This section introduces the scenarios of different processes that use high CPU usage.

Uniquely named singular Microsoft process

  1. Collect a performance monitor log. Use a 1-second to 5-second snapshot interval.
  2. Collect a Windows Performance Recorder (WPR) log while high CPU usage is occurring.

    Note

    Don't let this log run for a long time because the file grows very quickly. You should have to run the log only for a few minutes (three to five) to capture the high CPU usage.

  3. Run the ProcDump tool two times during reported high CPU usage. Space apart the runs by several minutes.

Svchost process

If a svchost process consumes high CPU usage, and the svchost process contains more than one service, you need to break each service out to run in its own svchost process to determine which service is causing the high CPU usage. To do so, follow these steps:

  1. Open an elevated Command Prompt window.

  2. Break out each service into its own svchost process if it's a shared svchost process. To do this, run the following command:

    sc config <service name> type= ow
    

    Note

    In this command, replace <service name> with the actual service name.

  3. Restart the service

  4. At the command prompt, run tasklist /svc to verify that the service is running in its own svchost process.

    Important

    After the problem is resolved, you must return to step 2 and revert what you did.

    To do this, replace sc config <service name> type= own with sc config <service name> type= share in the command. Then, restart the service.

  5. After you break each service out into its own svchost process, you now have to identify which service was driving up CPU usage or consuming high CPU usage.

  6. Collect a performance monitor log. Use a 1-second to 5-second snapshot interval.

  7. Record the PID of the offending Svchost process.

  8. Collect a WPR log while the problem is occurring.

  9. Run ProcDump two times during reported high CPU usage. Space apart the runs by several minutes.

Multiple process instances that have the same name

Several instances of a process could share the same name. For example, this problem could occur with the explorer.exe processes on a Remote Desktop Protocol (RDP) server.

To troubleshoot this problem, follow these steps:

  1. Collect a performance monitor log. Use a 1-second to 5-second snapshot interval.

  2. Collect a WPR log while the problem is occurring.

  3. Run ProcDump two times during reported high CPU usage. Space apart the runs by several minutes.

  4. Record the PID of the offending process by running the following command:

    tasklist /v /fo csv >Running_Process.txt

Third-party application process

If a third-process is identified as the cause of the problem, you must contact the application vendor to understand why the respective process is causing high CPU usage on the computer.

Data collection

Before the problem occurs

You can use Debug Diagnostic 2.0 version to further troubleshoot this problem. To use the tool, follow these steps.

  1. Install the Debug Diagnostic Tool v2 Update 2.

    Important

    Uninstall all other versions of Debug Diagnostic tool before you install the 2.0 version.

  2. Select Start, enter performance monitor, and then right-click Performance Monitor to run it as an administrator.

  3. Use Performance Monitor to collect the performance counter log and start the logging.

When the problem occurs

  1. Open the DebugDiag 2 Collection.
  2. Select the Processes tab, right-click the worker process that corresponds to the appropriate application pool, and then select Create Full Userdump.
  3. Repeat step 2 three times while the CPU usage is high.
  4. Stop the Performance Monitor logging.
  5. Compress the data by using DebugDiag. To do this, Select Tools > Create Increment Cabinet File.

We recommend that you keep the information that you've gathered handy in case you have to contact Microsoft Support.

Which of the following Windows tools is used to measure how well software and hardware are performing by displaying statistics in real time?

Which of the following Windows tools is used to measure how well software and hardware are performing by displaying statistics in real time? A Microsoft Management Console snap-in that can track activity by hardware and software to measure performance.

When cleaning up the startup process which of these should you do first?

When cleaning up the startup process, which of these should you do first? Run System Configuration to see what processes are started. Using the Internet, investigate each of the following startup processes. Identify the process and write a one-sentence description.

What Windows utility can be used to find out what processes are launched at startup?

Conclusion. The best windows utility to use in order to find out what processes are launched at startup is the Microsoft Process Explorer.

What is the name of the program that you can enter in the search box to execute event viewer?

Use the Command Prompt or Powershell Here's how you can use the Command Prompt to open the Event Viewer: Press Win + R to open the Run command dialog box. Type CMD and press Ctrl + Shift + Enter to open an elevated Command Prompt. Type eventvwr and press Enter to open the Event Viewer.