Performance · slow boots, high CPU & hanging apps
Performance: slow boots, high CPU, and apps that hang — found and fixed in order
Most performance problems aren't one thing. A slow boot, a pegged CPU, and an app that freezes can be three separate issues, or three different views of a single underlying cause. This guide works them in a fixed order — observe, measure, isolate, fix, verify, prevent — so you finish knowing what actually caused the problem, not just that you "did a few things and it got faster."
The order is the point. If you change five things at once and the machine gets faster, you have no idea which change fixed it, and the real cause is still sitting in there. Each stage below is built so the next step depends on evidence from the previous one. That's what separates diagnosing a problem from randomly waving at it until it behaves.
A note on scope: the tools and commands here are primarily Windows (Task Manager, clean boot, the repair commands), with notes where macOS and Linux differ. It's written for the person who wants to do this themselves, safely, without deleting the wrong thing or disabling something they should have kept.
The one rule that keeps this safe: change one thing at a time.
Every fix in this guide should be applied on its own, then verified, before you move to the next. Changing several things at once destroys your ability to tell which one worked — and a "fix" that you can't attribute can hide the real cause, or introduce a new problem you can't trace. When in doubt, do the cheaper, safer, more reversible action first, and keep every change reversible.
The method
Observe → Measure → Isolate → Fix → Verify → Prevent
Everything in this guide is an instance of these six stages. You don't have to be formal about it, but keeping them separate is what keeps troubleshooting from turning into guesswork. Tap a stage to see what "done" looks like for it.
Select a stage to see what to look for.
Observe: describe the symptom precisely and note the conditions. Is it slow when cold or after running a while? At boot, at idle, or only under load? Does one app do it or everything? The conditions are half the diagnosis — "sometimes" becomes a pattern once you write it down.
Measure: record numbers, not impressions. Boot time, idle CPU %, memory in use, disk active time, how long an app takes to open, temperature under load. You need a baseline before you change anything, because every later "did it work?" is a comparison against these numbers.
Isolate: find which single variable owns the symptom. Change one thing at a time, or use a controlled test like a clean boot. The moment a change and a result are paired, you've isolated a cause — and if nothing you change helps, that's information too (it points at the things you haven't touched, like the drive or heat).
Fix: apply the smallest safe change that targets the cause you isolated — not a list of changes. Safe and reversible first, riskier things later. A fix aimed at the isolated cause is far more likely to actually work than a fix aimed at the symptom.
Verify: check the same number you measured before, and confirm the symptom actually stopped — over real use, not one reboot. If it didn't work, undo that change so your baseline is clean again, then move to the next fix. Verification is what turns "I did a thing" into "the problem is fixed."
Prevent: set up the light routine that stops the decay from coming back — updates, a margin of free disk, a trimmed startup list, occasional malware scans, and periodic dusting. Most performance loss is gradual and preventable; this stage is what makes the fix last.
Why one variable at a time
Suppose your boot takes 90 seconds. You disable three startup apps, run a disk cleanup, and update a graphics driver — and now it boots in 40 seconds. You feel great, but you've learned nothing: it could have been any one of those three, and the other two changes may have masked a cause that will resurface. The disciplined version — change one thing, measure, move on — is slower in the moment and the only version that actually tells you what fixed the machine.
Start here
How slow boot, high CPU, and hanging apps relate
The three headline symptoms — slow startup, high CPU, and applications that freeze — are all symptoms, not causes. The same root problem can produce more than one of them at once, which is why you shouldn't anchor on the first one you noticed.
A slow or failing disk, for example, makes the boot slow (everything is read from it at startup), makes apps hang (they're waiting on data), and shows up as high disk activity rather than high CPU. Low memory makes apps hang and can show as high CPU from the system paging and compressing. A malware or miner infection adds hidden startup items (slower boot), burns CPU at idle, and generally drags everything down. Each of those is one cause wearing up to three different faces.
The practical takeaway: treat the three symptoms as a set to investigate together, and let the measurements tell you which underlying area they point at. Fixing the "slow boot" might leave the "high CPU" entirely intact if they had different causes — and you'd walk away thinking you solved a problem you only partially touched.
| Symptom | Usually points at | Less often |
|---|---|---|
| Slow boot / slow to be usable | Too many startup items, a slow drive, services starting | A failing disk, a thermal issue after warm-up |
| High CPU at idle | A background process, malware, a bad driver | A power plan set to "maximum performance" |
| Apps freeze / hang | Memory pressure, disk latency, one bad app | A driver, thermal throttling, a bad update |
Before you change anything
Establish a baseline
Before you touch a single setting, record the numbers. A baseline is the reference every later "did that work?" is measured against. Without one, "faster" is a feeling, and you can't tell a real improvement from noise — or from a fix that only worked for the one reboot you checked.
Measure under repeatable conditions: after a full reboot, at idle (nothing heavy open), and again under a normal workload. A number you can reproduce is a number you can trust. Write the values down or screenshot Task Manager — memory fades, and you'll want the "before" when you're comparing "after" a day later.
| What to measure | How to measure it | Why it matters |
|---|---|---|
| Boot time (to desktop, and to "usable") | powercfg /lastboot, or a stopwatch | The number your startup changes should improve |
| Idle CPU % | Task Manager, at rest | Baseline for spotting a hidden background load |
| Memory in use | Task Manager, Performance tab | Tells you if RAM is the bottleneck |
| Disk active time % | Task Manager, Performance tab | Separates storage latency from CPU load |
| How long a key app takes to open | Stopwatch, same app, cold start | A concrete, repeatable "hang" measurement |
| Temperature under load | A hardware monitor or powercfg /energy | Distinguishes throttling from a software problem |
Slow startup
Measuring boot and startup performance
"Boot time" actually has two parts people lump together. The first is power-on to the login screen — that's mostly the firmware and the disk. The second is login to "actually usable," when the system is still silently starting your apps and services in the background. The second part is where most of the fixable slowness lives, and it's the one your settings can change.
To measure on Windows, powercfg /lastboot gives a breakdown of the startup phases and how long each took. To see what's launching, open Task Manager's Startup tab (or Settings → Apps → Startup on Windows 11); each entry shows a "startup impact" that hints at how much it costs. Note the list and the impacts before you change anything — that's your boot baseline.
- Measure the current boot (to desktop, and to fully usable) and record it.
- List the startup entries and their impact; mark the ones you recognize.
- Note the disk — is the system drive an HDD or SSD? This sets the floor for how fast the boot can ever be.
- Compare your "to usable" time against your expectations; a long tail after the desktop appears is the startup-apps problem, not the firmware.
| Startup symptom | Investigation | Safe action | Verification |
|---|---|---|---|
| Long delay after the desktop appears | Startup tab / powercfg /lastboot | Disable unneeded startup apps (one group at a time) | Re-time the boot to "usable" |
| Slow from the very first moment | Disk type, firmware, drive health | Check drive health; consider an SSD | Boot time drops across all phases |
| Slow only on first login after an update | Post-update background work (indexing, servicing) | Let it finish once; re-measure on the next boot | Second boot is much faster |
There's no universal "normal" boot time — an HDD system will always boot slower than an SSD one, and a machine with twenty startup apps will always lag one with five. The number that matters is your own: did the boot get meaningfully faster after a specific change, and does it stay that way?
Startup apps
Startup applications and background programs
The single most common cause of both a slow boot and an elevated idle CPU is too much launching at once. Every startup app is a process competing for CPU, memory, and disk at the worst possible moment — when the system is already busy getting ready. Trim this list and you'll often fix two of the three headline symptoms at once.
On Windows 11, Settings → Apps → Startup toggles each entry; on Windows 10 and 11, Task Manager → Startup does the same and shows impact. Disable the things you don't actually need at login. The goal isn't an empty list — it's a list where every entry earns its place.
| Common startup entry | Generally safe to disable? | What you lose |
|---|---|---|
| Chat / cloud / media apps | Usually yes | They open when you launch them instead of at login |
| Manufacturer "helper" utilities | Often yes | Convenience extras (keyboard lights, overlays) |
| Third-party updaters (several at once) | Often yes | They update on demand; keep at most the ones that matter |
| Antivirus / Windows Defender | No | Real security — do not disable |
| Audio / chipset / display drivers | No | Hardware functionality |
| Something you can't identify | Look it up first | Unknown — research the name before deciding |
Verify: reboot and re-measure the boot to "usable," and watch the idle CPU a few minutes after login. Both should improve if startup load was a real contributor. If the boot is unchanged, startup apps weren't the cause — move on rather than trimming further.
High CPU
Investigating CPU usage
"High CPU" just means the processor is busy — the useful question is busy with what. Task Manager sorts processes by CPU so the responsible process is usually right at the top. The first step is always to identify that process, not to end it.
Sort by CPU and watch for a few seconds. A process you recognize doing real work (a game, a video export, a compiler) is normal — that's the CPU being used. A process you don't recognize holding a high percentage at idle, when you're doing nothing, is the interesting one. Note its exact name; you'll look it up rather than guess.
Resist the urge to "End task" on something you don't understand as a first move. You might kill a driver and make the system less stable, or you might clear the symptom while the cause keeps running in the background. Identify first; a name you can research is worth more than a number you just cleared away.
Reading the pattern
CPU spikes versus sustained load
A brief spike is normal; a sustained high load at idle is the problem. Windows Update, an antivirus scan, opening a heavy app, or indexing a folder all produce legitimate spikes that resolve on their own. What you're looking for is the meter that stays high when you're doing nothing — that's a background process, a bad driver, or an infection doing work you didn't ask for.
The shape of the usage changes where you look. A spiky pattern that follows your activity is fine. A flat, persistent high line at idle points at a specific process you can name. And a high System or System Interrupts entry — rather than a named app — usually points at a driver or a device, not a program, which sends you toward Device Manager and driver updates instead of the process list.
| CPU behavior | Possible cause | What to check |
|---|---|---|
| Spiky, follows your activity | Normal workload | Which app — expected? leave it |
| Sustained high at idle | Background process, malware, failing driver | Top process at idle; power plan; malware scan |
| High "System" / "System Interrupts" | A driver or a device | Device Manager warnings; driver updates |
| High "Memory Compression" | Not enough RAM | Memory section — close apps or add RAM |
| High only after running a while | Thermal throttling | Temperatures under load — see the thermal section |
One more pattern worth knowing: if CPU is high and the machine is also hot, the two may be linked — a heavy background load raises temperature, and temperature raises throttling risk. Measure both together so you know which is driving which.
Freezing apps
Memory pressure and application hangs
When physical RAM runs out, the operating system starts moving memory pages to disk (the pagefile) to make room. Disk is dramatically slower than RAM, so the visible result is apps that hang or take seconds to respond. Memory pressure is one of the most common reasons an app freezes while the CPU looks perfectly fine — the app isn't stuck thinking, it's stuck waiting.
The signature of memory pressure is a combination, not a single number: high memory in use, and high disk activity, and apps freezing. If you see that trio, the fix lives in memory — close what you don't need, find the process that's using an unreasonable amount, or add RAM — not in the CPU. Chasing the CPU when the real constraint is memory is a classic dead end.
In Task Manager, sort by Memory to find the largest consumers. A single app using many gigabytes may be a leak or a genuinely heavy workload; many moderate apps adding up means you've simply run out of headroom. If "Memory Compression" shows high CPU, that's the system working hard to squeeze more out of a full RAM — another hint the memory is the constraint.
Storage
Disk activity and slow application response
High disk activity is its own kind of slowness that's easy to misread as a CPU problem. When the "disk active time" sits near 100%, the system is spending its time waiting for storage, not computing — the CPU may look idle while everything feels sluggish. Storage latency and CPU load are different things, and the fix for one is not the fix for the other.
Context matters a lot here. On an older hard disk drive, brief 100% is common — the drive is just slow and you're seeing its limit. On an SSD, sustained 100% is a red flag that something is genuinely wrong: a failing drive, a bad driver, or heavy background read/write. And a nearly-full drive (especially the one holding the pagefile) slows everything down, so free space is part of this check too.
Check three things: is the system drive an HDD (if so, an SSD is the eventual real fix), is the drive healthy (see the storage-health section and the hardware guide), and is it full? A drive that's failing is a replace-it situation, not a clean-up one — back up first if you suspect it.
Verify: after addressing the disk cause (freeing space, fixing a driver, or replacing the drive), the disk active time at idle should drop and app-open times should fall. If the disk stays pegged with nothing open, that's a strong signal to investigate drive health and drivers before anything else.
Background
Windows services and background processes
Services run in the background whether or not you have a window open. Most are essential; some are vendor services you may not need starting at every boot. A misbehaving service can peg CPU or disk with no visible app to point at, which is why "I don't have anything open but the CPU is busy" often ends up being a service.
You can view services in services.msc. Most should be set to Automatic or Manual. The honest advice here is restraint: don't start setting services to Disabled based on a generic "safe to disable" list. Many of those lists are outdated, written for a different setup than yours, and a wrong change can break something subtle. If you disable a service, do it one at a time and know how to turn it back on.
The safer tool for this whole category is the clean boot, which temporarily disables all non-Microsoft services at once. If your performance problem disappears in a clean boot, you've proven a third-party service or app is involved — and you can re-enable things in groups to find which one, instead of guessing service by service.
The usual suspect
Browser-related CPU and memory
Modern browsers are frequently the top consumer of both CPU and memory, and they're built from many processes — typically one per tab, extension, or site. A single leaky tab, a heavy page, or a misbehaving extension can make it look like the whole computer is slow when really it's one browser doing a lot.
The browser's own task manager is the fastest way in: in Chrome and Edge, Shift + Esc opens a per-tab/per-extension CPU and memory view (Firefox has one under its about:performance page). Look for the tab or extension that's out of line. A bad or malicious extension is a classic cause of constant background CPU that has nothing to do with what you're looking at on screen.
Safe actions, in order: close tabs you're not using; restart the browser; then disable extensions you don't need (test with them all off, then re-enable in groups if something changes). If a specific extension is the culprit, remove it. Verify: the idle CPU and memory should drop once the offending tab or extension is gone — and should stay down, not creep back.
Security
Malware and security checks
A malware or crypto-miner infection is a leading cause of sustained high CPU at idle, extra hidden startup items (slower boot), and general, unexplained lag — and it can dress itself up as a legitimate process. This is exactly why "identify the process" comes before "act on the process": an unknown process at 80% at idle is the kind of thing a scan should be explaining.
A legitimate system process has a verifiable home — typically C:\Windows\System32 or a known vendor folder — and a valid digital signature. A process running out of a temp folder or a user's AppData directory with a random or suspicious name is suspect. Right-click the process in Task Manager and open its file location to check; look up the exact name if you're unsure. Don't "delete" something you can't identify — quarantine it with your security tool instead.
The safe action is a full scan with Windows Defender (or a reputable scanner), plus a review of startup items for anything unrecognizable. A scan is reversible and low-risk; manually hunting and deleting processes is not. If the scan finds something, let it quarantine, reboot, and re-measure your baseline — the idle CPU in particular should fall if a miner was the cause.
System layer
Driver and operating-system considerations
Out-of-date or faulty drivers — especially graphics, chipset, and storage-controller drivers — can cause high CPU, high "System Interrupts," and application hangs. So can a Windows Update that installed a bad driver or broke a setting. If your performance problem started right after an update, that timing is a strong clue and worth acting on before you chase other causes.
Open Device Manager and look for any device with a warning marker — that's a direct pointer to a driver problem. Note the date of your last major update, and check whether the problem began around then. The safe path for drivers is to get them from the hardware vendor (the motherboard, GPU, or laptop maker) rather than from a third-party "driver updater" tool, which is its own common source of new problems.
Two built-in repair commands are worth running when the OS layer is suspected. sfc /scannow checks and repairs protected system files, and DISM /Online /Cleanup-Image /RestoreHealth repairs the underlying system image that SFC draws from. Run DISM first, then SFC, in an elevated prompt. Both are safe and reversible-ish (they only restore correct files), and a clean report rules the OS layer in or out. Verify: a completed, clean report plus stable behavior after a reboot.
Heat
Thermal throttling as a performance factor
When a CPU or GPU gets too hot, it deliberately slows itself down (thermal throttling) to avoid damage. To you this looks like the machine being fast when it's cold and getting slow after it's been running a while. The confusing part: because the chip is throttling, Task Manager may show the CPU usage dropping even though performance is falling — the opposite of what you'd expect from a workload, and a signature that points straight at heat rather than software.
This is where performance and cooling meet. A machine that's fine for ten minutes and sluggish after thirty is a thermal problem, and no amount of startup trimming or malware scanning will fix it — the fix is cooling (cleaning dust, repasting, improving airflow). If you've ruled out the software causes above and the pattern is "fine when cold, slow when warm," go measure the temperature under load.
Check temperatures with a hardware monitor, or generate an energy report with powercfg /energy, which flags cooling and power-efficiency issues. If the temperatures are high or the report mentions throttling, the next step is the cooling work described in the overheating guide. Verify: after improving cooling, the machine should sustain performance over a longer load without the slow-down, and temperatures should sit in a normal range.
The drive itself
Storage health and free disk space
A failing drive and a nearly-full drive both make a system slow, and both are worth checking before you chase software causes. Free space matters more than people expect: when the drive — especially the one holding the pagefile and temp space — runs out of room, the whole system slows down because it has nowhere to work.
Check free space first (a meaningful margin, commonly at least 10–15% free, is a reasonable target) and clear what you can with the built-in Storage Sense or Disk Cleanup. Then check drive health: on Windows, Get-PhysicalDisk in PowerShell reports a health status for each disk. A drive reporting a degraded or "pred-fail" status, or an HDD making clicking sounds, is dying — and that's a back-up-and-replace situation, not a clean-up one.
The distinction matters: "the disk is full" is fixed by freeing space; "the disk is failing" is fixed by replacing it, and cleaning it won't help. If health looks bad, back up important data immediately and plan the replacement (see the hardware guide for drive types and swapping). Verify: after freeing space, slow-open times should improve; a failing drive's errors will not — they'll keep coming until it's replaced.
One app, or the system?
Application-specific troubleshooting
Sometimes the problem is one application, not the system. If only a specific program hangs or eats CPU while everything else is fine, the fix is app-specific and changing system settings will do nothing. The single most useful question is: does it happen with other apps too? If only one app misbehaves, it's that app. If everything is slow, it's the system — and you're back in the sections above.
For a single-app problem, the usual suspects are a corrupted cache or profile, a bad update to that app, a heavy background sync it runs, or (for games and creative tools) a driver or thermal issue that only shows under that app's specific load. Work through the table below rather than guessing.
| App symptom | Possible cause | Diagnostic method | Fix |
|---|---|---|---|
| Frozen on open, then works | Corrupt cache/profile, slow disk | Does it happen to other apps too? | Clear the app's cache / reinstall; check disk |
| One app pegs CPU after it opens | A bug, a leak, or background sync | Watch it in Task Manager once it's idle | Update or reinstall; disable its auto-sync |
| Game stutters / dips | GPU driver, thermal, background load | Check temps and GPU driver; close background apps | Update the GPU driver; reduce background load |
| Works, but very slow to respond | Memory pressure, slow HDD | Check RAM in use and disk activity | Close other apps; add RAM or an SSD |
Verify: after the app-specific fix, that app should open and respond at a normal speed while the rest of the system is unchanged. If other apps are still slow, the app wasn't the whole story — return to the system-level sections.
Controlled test
Clean boot / controlled startup
A clean boot starts Windows with only the minimum Microsoft services and no third-party startup programs. It's the cleanest way to prove whether a third-party app or service is causing your performance problem: if the problem vanishes in a clean boot, you know it's something you added — and you can bring things back in groups to find exactly which.
It's a diagnostic state, not a permanent one. While you're in it, your antivirus and various normal features are off, so don't live there. Use it to make a measurement, then return to normal startup.
- Open msconfig (System Configuration) → Services tab → tick "Hide all Microsoft services" → Disable all.
- On the Boot tab, choose to disable startup items (or disable them in Task Manager → Startup).
- Restart, then re-measure your baseline (boot time, idle CPU, a test app opening). Note how the machine behaves with a minimal start.
- If it's fast now, re-enable in halves: turn half the services back on, reboot, test. Whichever half brings the problem back contains the culprit — then narrow within that half.
- When you're done, restore Normal startup (msconfig → Boot tab → "Normal startup") and re-enable the services you disabled.
Verify: the test succeeds when you can name the specific service or app that, when re-enabled, returns the slowness. That named component is your cause — fix or remove it specifically, rather than leaving everything disabled.
Evidence
Event logs and diagnostic tools
When the on-screen symptoms are ambiguous, the system's own records often name the cause. Windows Event Viewer stores errors and warnings with timestamps, so you can line up "what the machine was doing" with "when it got slow." A recurring driver error, a disk warning, or a service failure in the logs is a direct clue you can't get from watching a meter.
Open Event Viewer with eventvwr.msc and look under Windows Logs → System and Application for red errors around the times the problem happens. You're not reading every line — you're looking for a repeated offender. Resource Monitor (resmon) is the other high-value tool: it shows live CPU, memory, disk, and network per process, and its disk view in particular shows which process is reading or writing what when the disk is busy.
The commands below cover the main diagnostic actions in this guide. Copy the ones you need — they're all standard, built-in tools.
powercfg /lastboot
Breaks down how long each phase of the last startup took.
Get-Process | Sort-Object CPU -Descending | Select-Object -First 10 | Format-Table
Lists the ten processes using the most CPU.
Get-Process | Sort-Object WorkingSet64 -Descending | Select-Object -First 10 | Format-Table
Lists the ten processes using the most memory.
Get-PhysicalDisk | Format-Table
Shows each disk's health status and media type (HDD/SSD).
resmon
Opens Resource Monitor — per-process CPU, memory, disk and network.
eventvwr.msc
Opens Event Viewer for system and application logs.
DISM /Online /Cleanup-Image /RestoreHealth
Repairs the system image. Run before sfc /scannow.
sfc /scannow
Checks and repairs protected Windows system files.
powercfg /energy
Generates an energy-efficiency report; flags cooling and power issues.
Now fix it
Safe fixes, in the right order
Now you apply fixes — but in this order, one at a time, verifying after each. The sequence is safe-first and cheapest-first: the low-risk, reversible things come before anything that costs money or changes the machine. Tick each one off as you complete it; the progress is saved in your browser.
0 of 9 complete
Update Windows and your drivers
safeInstall pending OS updates and get current drivers from the hardware vendor. This rules out the "a bad update or driver broke it" cause and fixes many performance regressions outright.
Verify: reboot, then re-measure idle CPU and a test app opening. Both should be stable or better.
Trim the startup apps you don't need
safeDisable unneeded startup entries in groups, keeping your security and driver components enabled. This is the most common fix for both slow boot and elevated idle CPU.
Verify: re-time the boot to "usable" and watch idle CPU after login. Both should improve; if not, revert and move on.
Close unused tabs; disable unneeded extensions
safeUse the browser's task manager to find the heavy tab or extension, then close or remove it. Browsers are a frequent top consumer of CPU and memory.
Verify: idle CPU and memory should drop and stay down once the offender is gone.
Run a full malware scan
safeA full scan with Windows Defender or a reputable scanner checks for miners and infections that masquerade as processes. Let it quarantine anything it finds.
Verify: a clean (or remediated) report, and idle CPU should fall if an infection was the cause.
Free disk space and check drive health
safeKeep a healthy free-space margin and check Get-PhysicalDisk health. If the drive is failing, back up and plan a replacement rather than cleaning it.
Verify: app-open times improve with free space; a failing drive's errors persist until replaced.
Repair system files (DISM, then SFC)
moderateRun DISM /Online /Cleanup-Image /RestoreHealth, then sfc /scannow, from an elevated prompt. This rules the operating-system layer in or out.
Verify: a completed report (noting anything it repaired) plus stable behavior after a reboot.
Do a clean boot to isolate background services
moderateIf a third-party app or service is suspected, run a clean boot, measure, and re-enable in groups to find the culprit. Return to normal startup when done.
Verify: you can name the specific service or app whose re-enable returns the slowness.
Check temperatures under load
safeIf the machine is fine when cold and slow when warm, measure temperatures under load. High heat means the fix is cooling, not software — see the overheating guide.
Verify: after improving cooling, performance holds over a longer load and temps sit in a normal range.
Consider a hardware upgrade — only if measured
moderateIf your numbers show the disk pegged on an HDD, an SSD is a real fix; if memory is full and apps hang, more RAM is. Upgrade the bottleneck you measured — not as a general "it's old" gesture.
Verify: after the upgrade, re-measure the same baseline numbers and confirm the specific bottleneck improved.
Proof it worked
How to verify that a fix actually worked
A fix has only "worked" if a measured number improved and the symptom stopped. Before you test, write down what you expect to change: which number (boot time down? idle CPU down?), by roughly how much, and over how long. "I did the thing and it feels fine" is not verification — it's a hope.
Observe for a real period, not a single reboot. For a boot fix, watch several reboots. For an idle-CPU fix, leave the machine at rest for a good while and re-check. For a hang fix, use the machine normally for a day. A fix that holds across ordinary use is a fix; one that only works immediately after you applied it may be masking the cause rather than removing it.
And if a fix didn't work, undo it before moving on. Keeping changes reversible is what lets you keep troubleshooting without compounding — you return to a clean baseline and try the next fix with a clear signal. Four questions keep this honest:
Stay safe
What not to disable or delete
The most common way to make a performance problem worse is to remove the wrong thing in a hurry. The fixes in this guide are deliberately conservative, and the following are the things to leave alone unless you genuinely understand what they do and how to bring them back.
- Your antivirus / Windows Defender. Disabling it to "free up CPU" trades a small performance gain for a real security hole. If it's heavy, investigate why rather than switching it off.
- Core system services. Setting unknown services to "Disabled" is how people create new, stranger problems. Disable one at a time, and only ones you can identify and re-enable.
- The pagefile on a low-RAM system. Disabling the pagefile to "speed things up" can make out-of-memory situations crash instead of slow. Let it manage memory.
- Drivers with a warning — blindly uninstalling them. Update or roll back a warning driver; don't just remove it, or you can leave the device non-functional.
- "Registry cleaners" and "PC booster" utilities. These remove things without understanding dependencies and are a classic source of new failures. Use the built-in tools instead (Storage Sense, Disk Cleanup, the repair commands).
- Deleting files you can't identify. An unknown process or file is something to research or quarantine with a security tool, not something to delete by hand.
The pattern to remember: prefer the built-in, reversible, diagnostic-first tools. They're slower to reach a conclusion than a magic "optimize" button, but they don't create the next problem while solving the current one.
Hardware
When a hardware upgrade is actually justified
Some slowness is simply the hardware doing its best, and no amount of software tuning gets past a physical limit. The two upgrades that genuinely move the needle for most everyday machines are storage (an HDD replaced by an SSD) and memory (adding RAM). Both are worth it — but only when the numbers say the hardware is the bottleneck.
The rule is to upgrade only after the software causes are ruled out, and to match the upgrade to the measured constraint. A disk that's constantly pegged and is a slow HDD points at an SSD. Memory that's full, with apps hanging and high disk, points at more RAM. But adding RAM won't fix a thermal problem, an SSD won't fix a malware infection, and a new drive won't help a failing one you should be replacing — an upgrade only helps the specific bottleneck you measured.
This is exactly where the baseline you took at the start pays off. You can look at your recorded disk active time, memory usage, and boot phases and justify the purchase with evidence instead of a guess. If you'd like the details on drive types and swapping, the hardware guide covers storage and memory in depth.
Make it last
Preventive maintenance
Most performance loss is gradual and preventable. A machine that was fast when set up usually gets slow from accumulation — more startup items, less free disk, dust in the cooling, an infection that crept in — not from a single dramatic failure. A light, periodic routine stops that accumulation and keeps a machine fast for years.
It's a short checklist you run now and then, not a project:
- Keep the OS and drivers updated — regularly, from the vendor, not from "updater" tools.
- Keep a margin of free disk — run Storage Sense or Disk Cleanup occasionally so the drive never runs out of room to work.
- Trim the startup list periodically — new apps keep adding themselves; review the list a few times a year.
- Scan for malware now and then — a periodic full scan catches what real-time protection might miss.
- Clear the dust periodically — heat builds up over months; better airflow is the cheapest thermal fix.
- Back up regularly — so that the day a drive fails is a replacement, not a disaster.
None of this is expensive or complicated. The point is that a small, recurring habit does more for long-term performance than any one-off deep clean — and it means the problems this guide diagnoses have a much smaller chance of arriving in the first place.
Quick route
What should I check first?
If you have a specific symptom, pick the closest match below and follow the suggested route. This is the decision flow in one place: the pattern you see determines where you look first, so you're not starting from scratch.
Select your closest symptom to get a starting route.
Start with startup, then storage. A slow boot with normal CPU usually means too much launching or a slow drive. Check your startup apps first (section 05), re-time the boot, then look at the disk — its type and health set the floor for boot speed (09, 15).
If still slow: run a clean boot to test whether a background service is the cause, and check the startup phases with powercfg /lastboot.
Identify the process before changing anything. Sort Task Manager by CPU at idle and note the top offender (06). Decide if it's a spike or sustained (07), and whether it's a named app or "System" (a driver).
Then: if it's an unknown process, look it up and run a malware scan; if it's "System," check drivers; if it follows your browser, check tabs and extensions.
A low CPU with frozen apps means the system is waiting, not thinking. Check memory first — high memory plus high disk is memory pressure (08). Then check disk activity and whether it's one app or all of them (16).
If still hanging: review drivers and the event logs for a recurring error, and consider thermal if it's worse after the machine warms up.
Slow under sustained load is usually heat. Measure temperature under load and check for throttling (14). Note the pattern: fast when cold, slow when warm, CPU usage possibly dropping — that's the throttle signature.
Then: the fix is cooling — clean dust, check fans, repaste if needed — covered in the overheating guide. Software fixes won't solve this one.
Start at the top: establish a baseline (03) so you have numbers to compare, then work down the fix list in order (19), verifying after each.
Or use the final diagnostic checklist as a map of everything to check, ticking off what you've confirmed.
The whole flow
Final diagnostic checklist
This is the entire method as a checklist, in order. Tick each item as you complete it — your progress is saved in this browser, so you can work through it across several sessions. Copy it if you want a text version.
Did you find the cause?
Select the outcome that fits.
FAQ
Performance questions, answered
Why is my PC only slow sometimes, not always?
Because performance problems are often load- or temperature-dependent. A machine that's fine when cold and slow after an hour is usually thermal; one that's fine until you open many tabs is usually memory; one that's slow right after boot is usually startup items. "Sometimes" is a clue, not an annoyance — write down the conditions and a pattern appears.
Is high CPU usage always a problem?
No. High CPU while you're actively doing something (gaming, video, compiling) is normal. The concern is high CPU at idle, or a single unknown process staying high. Context — what you're doing and which process is busy — is what makes it a problem or not.
How long is a normal boot time?
There's no universal number. An SSD system commonly reaches the desktop in a few seconds to around a minute; an HDD system is slower still. The meaningful comparison is your own baseline before and after a change, not an absolute target.
Can I disable any startup app?
No. Disable the ones you recognize and don't need at login (chat apps, cloud sync, updaters, manufacturer extras). Don't disable your antivirus, audio or driver components, or anything you can't identify and look up. Disabling is reversible, but disabling security is a real risk.
What is a clean boot, and is it safe?
It starts Windows with only the minimum Microsoft services and no startup programs, to test whether a third-party app or service is causing the problem. It's safe as a temporary diagnostic — but it turns off your antivirus and some features while active, so return to normal startup when you're done.
Is 100% disk usage normal?
On an older HDD, brief 100% is common (the drive is just slow). Sustained 100% — especially on an SSD, or at idle with nothing open — is not normal and points at a failing drive, a bad driver, or heavy background activity. It's worth investigating.
Do I need more RAM or an SSD?
Let your measurements decide. If memory is full and apps hang (with high disk), more RAM helps. If the disk is constantly pegged and it's a slow HDD, an SSD helps. An upgrade only helps the bottleneck you've actually measured — it won't fix malware, a bad driver, or heat.
Why do apps hang but the CPU looks normal?
Because the bottleneck often isn't the CPU. Apps hang when they're waiting on memory (RAM full, paging to disk) or on the disk. A low CPU with a frozen app usually means the system is waiting, not thinking — check memory and disk activity.