What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more

When Visual Studio Code behaves incorrectly, first reproduce the same action under the same workspace conditions, then change one variable at a time. Use Help: Start Extension Bisect for a large extension set, manual disablement for a short suspect list, an Empty Profile to separate extensions from modified settings, and the command line or shortcut logs when those checks fit the problem. A symptom that disappears with extensions disabled is evidence that the extension environment matters—not automatic proof that one particular extension is defective.

Start with a controlled reproduction

Extension troubleshooting is only reliable when every comparison repeats the same failure. Before disabling anything, write down what you did and what happened. This turns a vague report such as “VS Code is broken” into a test another person can repeat.

Define the symptom precisely

  • Record the exact action: for example, opening a file, saving it, starting a debug session, invoking a command, or pressing a shortcut.
  • Note the file type, folder or workspace, branch, and any input data involved.
  • Describe the expected result and the actual result, including an error message, delay, missing UI element, changed formatting, crash, or incorrect command.
  • Write down whether the behavior is intermittent or occurs every time, and how long it takes to appear.

Keep those conditions fixed for every test. If you switch projects, edit settings, update VS Code, and disable extensions all at once, a change in the symptom cannot identify which condition mattered.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Capture the environment

Include the VS Code version, operating system and architecture, workspace path, active profile, and the relevant extension IDs and versions. If the problem occurs only in a remote window, container, WSL environment, or other special context, record that too. A workspace-only extension state can differ from the global state, so note where each extension is enabled.

#1 Best Overall
Sale
Compressed Air Duster,130000RPM Super Power Cordless Air Duster,Rechargeable Brushless Blower,3 Gear Adjustable Blower with LED Light,Dust Remover for Computer/House/Outdoor/Car
  • Powerful Turbo Fan:CAGIWIRU Electric Air Duster have reached speed up to 130000RPM,Can efficient remove dust and debris.With LED light and Three Adjustable Speed to meet with different cleaning tasks.
  • With Attached USB C Fasting Charging cable.Charing 3 hours,Enjoy up to 240 minutes of use on the lowest setting, For third speed can use for 25mins.with four charging options to meet with your needs.
  • Wide Application: attached 5 different nozzles,making it suitable for a variety of scenes, such as car,pet, pc, keyboards, and other electronic devices. It also serves for office and home clean duster.
  • Handy Design & Portable:Cordless air duster electric nozzle is Light weight and small size, design and comfortable to hold and space saving, convenient to carry around. You can put it in your room or inside the car without taking up space.
  • Economical &Reusable: Built durable materials with a long-lasting battery,our CAGIWIRU air duster it's a sustainable alternative to disposable air cans.

Use Extension Bisect for a large enabled set

Extension Bisect is VS Code’s built-in narrowing process. It disables subsets of enabled extensions, asks whether the original problem is still present, and uses your answers to reduce the candidate set. The official explanation describes it as “Just like git-bisect, but for VS Code extensions,” written by Johannes Rieken, a VS Code Principal Software Engineer, in the February 16, 2021 VS Code Blog article: Resolving extension issues with bisect.

The method is particularly useful when many extensions are enabled. The Visual Studio Code Blog reported that the Marketplace hosted more than 28,000 extensions in 2021 and that having 50 or more installed was not uncommon at that time. Those are historical figures, not a current Marketplace count or a current prevalence estimate.

Run the bisect process

  1. Reproduce the original symptom once more and leave the affected workspace ready for the same test.
  2. Open the Command Palette with Ctrl+Shift+P on Windows or Linux, or Cmd+Shift+P on macOS.
  3. Run Help: Start Extension Bisect.
  4. Read each prompt and let VS Code disable the subset it selects. Do not alter the workspace or perform unrelated actions while a round is in progress.
  5. Repeat the exact action you documented. Report Yes if the original symptom still occurs and No if it does not. Accurate answers are essential: the narrowing result is calculated from this feedback.
  6. Continue through the prompted rounds until VS Code identifies a likely extension or reaches the end of the process.
  7. Record the candidate extension ID and version, then disable or re-enable it deliberately and repeat the original reproduction again.

Bisect works on the enabled extension set. It is not a test of every extension installed on disk, and it does not by itself decide whether an extension is incompatible with VS Code, another extension, a setting, or the project. Treat its result as a focused lead that requires confirmation.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Stop, restore, or rerun safely

Extension disablement is reversible. If you need to stop the process, restore the previous extension state before continuing other diagnosis. After the likely extension is identified, run the same test with it disabled, then with it enabled again. If the symptom follows that single change, you have a stronger, repeatable association than the bisect result alone.

Manually disable extensions for a short suspect list

Manual control is faster when only one or a few extensions plausibly affect the symptom—for example, a formatter changing files on save, a language service affecting diagnostics, or a debugger integration changing launch behavior.

Disable one extension globally or for the workspace

  1. Open the Extensions view using the activity bar or Ctrl+Shift+X on Windows and Linux (Cmd+Shift+X on macOS).
  2. Find the extension and open its gear menu.
  3. Choose Disable to turn it off globally, or choose the workspace-specific disable option to affect only the current workspace.
  4. If VS Code asks to restart the extension host or reload the window, accept it before testing.
  5. Repeat the exact reproduction and record the result.
  6. Use the same gear menu to re-enable the extension, reload if requested, and run the reproduction once more.

A workspace-only disablement is useful when the extension should remain available in other projects. A global disablement is appropriate when the behavior appears across workspaces or when you are testing the extension independently of one project.

Rank #2
EVEO® Screen Cleaner Spray Kit (Streak-Free) TV Screen Cleaner for Smart TV, Lcd, LEd, Oled | Computer Screen Cleaner Spray and Wipe Microfiber Cloth - TV, Monitor, Laptop, iPad, Car - 6.7oz 1 Pack
  • Screen Cleaner is Your Screen’s New Bestfriend! - EVEO is proud to present a screen cleaner that’s perfectly suited for your TV. Meet your new screen cleaner, computer screen cleaner, laptop cleaner, iPad cleaner, Macbook,tv cleaner or any other electronic device. Our screen cleaner spray and wipe along with the included plush microfiber cloth, easily removes dust, fingerprints & other smudges on the screen’s surface. Clean effectively for a streak-free screen
  • Gentle on your Screens - Our screen cleaner spray and wipes is compatible to be used even for the most sensitive LCD, LED, CRT, and OLED screens in proper use. Be at ease knowing that this product is compatible with all the major brands: LG, SONY, Samsung, Sharp, iPad, iPhone, Android screens, Kindle, PC monitors - we’ve got you covered! Can be used as LCD screen cleaner, tv cleaner, smart tv screen cleaner, and more
  • Premium Super Soft Plush Microfiber Cloth - Included in this efficient screen cleaning kit. This screen cleaner spray and wipe has our signature plush microfiber cloth specially designed to comply with screens and monitors and leave them streak-free. Has been shown to effectively absorbs stubborn stains, zero streaks, and no fiber shedding. Always use this together with our screen cleaner for the best results
  • Easy-to-Use Screen Cleaner Kit + microfiber cleaning cloth - The EVEO Screen Cleaning Kit will easily be your new favorite tool when it comes to taking care of the things you love most, quick and easy solution for a streak-free screen. Simply screw on the sprayer gun on the screen cleaner bottle. Spray the cleaning liquid onto the microfiber cloth, then wipe the screen until desired cleanliness & shine is achieved.
  • Quality Screen Care Kit Worth Purchasing - Enjoy a convenient Screen Cleaner anytime, anywhere you need it. Your satisfaction is our top priority. We stand behind the quality of our products and that’s why, you shouldn’t be worrying at all. We manufacture the Best Screen Cleaner. and can be used for laptop cleaning kit, laptop screen cleaner, tv screen cleaner for smart tv. MacBook screen cleaner, monitor cleaner or screen cleaner spray for electronic devices with microfiber cleaning cloth

Disable everything as a broad comparison

In the Extensions view, use Disable All Installed Extensions. Reload the extension host if prompted, then perform the same test. If the symptom remains, the immediate cause may be VS Code itself, a modified setting, workspace content, an external tool, or a condition that your reproduction did not actually trigger. If it disappears, restore extensions selectively rather than assuming the last extension you touched is responsible.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Re-enable in controlled groups

  1. Keep the symptom-triggering action unchanged.
  2. Enable a small, logically related group—for example, language tooling, formatters, or source-control integrations.
  3. Reload when requested and repeat the test.
  4. When the symptom returns, divide that group and test smaller subsets until one extension or interaction remains.
  5. Disable the suspected extension and then re-enable it as a final confirmation.

This approach can reveal an interaction: two extensions may work separately but conflict when enabled together. In that case, test each one alone and then the pair, and report the exact combination instead of blaming only one extension.

Separate extensions from settings with profiles

Disabling extensions does not remove modified VS Code settings. A setting can produce a result that looks like an extension conflict, so use profiles when the broad extension test is inconclusive.

Compare with an Empty Profile

According to the official Profiles in Visual Studio Code documentation, an Empty Profile disables all extensions and modified settings. Switch to or create an Empty Profile, open the same workspace, and repeat the same reproduction steps.

  • If the symptom disappears in the Empty Profile but returns in your normal profile, the cause is in the combination of extensions and modified settings rather than a clean VS Code core state.
  • If the symptom remains in the Empty Profile, extensions and modified settings are less likely to be the cause; investigate the workspace, project tools, operating system, or VS Code itself.
  • If disabling extensions alone fixes the issue but the Empty Profile does not change it, recheck that the extension host actually reloaded and that you reproduced the identical action.

After the comparison, restore settings and extensions in a controlled order. Reapply one setting or one small group, repeat the action, and record the first change that brings the symptom back.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Use a Temporary Profile for a contained experiment

A Temporary Profile lets you try a configuration or extension without changing your default profile. Use it to install or enable a candidate, reproduce the issue, and then discard the temporary setup. This prevents an exploratory test from permanently changing the profile you use for daily work.

Rank #3
Sale
BladeHawks RGB Gaming Mouse Pad Extra Large Extended 31.5x12 Inch-Black | LED mouse pad with 14 lighting modes, covers keyboard & mouse, anti-slip rubber base, waterproof surface, USB powered
  • 【Large size】:Measuring 800 x 300 mm/ 31. 5×12 inches, which is wider and taller than others. Large mouse pad can perfectly fit your keyboard and mouse of any size, and there is also ample space for peripherals such as phones, tablets, etc.
  • 【LED backlight mouse pad】:Blade Hawks RGB mouse pad provides 7 static modes and 7 dynamic modes will give you the options you are looking for. Power-off memory function remembers the last lighting mode you selected. The super glow fiber Chroma will give you a colorful gaming setup that you want.
  • 【Anti-slip rubber base】:Made from Natural rubber, this gaming mousepad will firmly grip your desktop, allowing you to enjoy the ultimate precision in the games you are most passionate about. It also comes with a texture that enhances this ability even further.
  • 【Smooth and waterproof surface】: Micro-textured cloth surface, for extremely precise mouse control and a smooth movement. When liquid splashes on the gaming mouse pad, it forms water droplets and slides down. Will not delay your work or gameplay.
  • 【Plug and play】: This mouse and keyboard pad is powered by USB, plug and play, no driver required. One button control light modes. Press one time to change the lighting mode, press twice to change the brightness, press and hold about 3 seconds turn ON/OFF.

Run equivalent checks from the command line

The command-line interface is useful for a quick clean launch, automation, or a reproducible support report. The official syntax and switches are documented in Command Line Interface (CLI).

Launch with extensions disabled

Close or leave your existing window as appropriate, then start the same folder with:

code --disable-extensions /path/to/your/workspace

On systems where the code command is not on your PATH, use the platform’s installed VS Code command or add it according to the official CLI instructions. The important comparison is the same workspace and same action with extensions disabled. Record whether the symptom changes, and then launch normally to restore your usual environment.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

List extension IDs and versions

Capture the installed inventory with:

code --list-extensions --show-versions

Save the output with the VS Code version, operating system, active profile, and reproduction steps. IDs and versions are more useful to a maintainer than display names alone because similarly named extensions can come from different publishers.

Launch a named profile

To compare a known profile from the command line, use the profile switch:

code --profile "Profile Name" /path/to/your/workspace

Rank #4
Sale
Vaydeer Wrist Rest for Keyboard and Mouse, Computer Ergonomic Wrist Support Pad, Soft Memory Foam Arm Cushion for Desk, Palm Hand Office Laptop Typing
  • 【Softer and More Comfortable】Vaydeer wrist rest has unique diamond pattern, which is the combination of softness and aesthetics. The materials of wrist rest are improved into higher quality memory foam and covered with silky smooth lycra. The computer wrist rest makes you as comfortable and cushiony as like rest your wrists on clouds.
  • 【Ergonomic Wrist Saver】The wrist rests for keyboard and mouse comes with a 17.32×3.15×0.83 inch keyboard wrist pad and a 5.94×3.15×0.83 inch mouse wrist support. Based on ergonomic design, the unique concave shape is the perfect fit for your wrist joints. The wrist rest pad fits most computer keyboards and laptops, improve hand and wrist posture, release your wrist and arm stress.
  • 【Non-Slip Rubber Bottom】Featuring an anti-skid silicone base on the bottom, this wrist keyboard support stays firmly in place on your desk, preventing the padding from sliding around, ensuring stable and consistent wrist support during extended computer sessions.
  • 【Better Experience & Pain Relief】Our keyboard arm rest is beneficial to alleviate the soreness caused by direct contact and friction between your arm and a hard desk surface, reducing the risk of wrist fatigue or carpal tunnel. The soft texture of memory foam can evenly distribute the pressure around your wrists and provide good support with just enough give.
  • 【Helpful in Multiple Scenarios】Whether you're working, studying, writing, typing, gaming, this keyboard and mouse rest combo is an essential accessory to add comfort and support to your hands and wrists. It’s also a great gift for men, women, family, friend, coworker, gamer, teacher, etc.

Replace Profile Name with the exact profile name. This makes it possible to document a repeatable comparison between a normal profile, an Empty Profile, or a temporary test profile.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Diagnose keyboard shortcut conflicts with the shortcut log

If the symptom is that a key combination runs the wrong command, does nothing, or behaves differently by context, use VS Code’s shortcut-specific diagnostics instead of guessing which extension owns the key.

  1. Open the Command Palette.
  2. Run Developer: Toggle Keyboard Shortcuts Troubleshooting.
  3. Press the problematic shortcut once, under the same context in which it fails.
  4. Open the Output panel and read the troubleshooting log. It shows the key VS Code detected and the command it invoked, along with the dispatch decision.
  5. In the Keyboard Shortcuts editor, search for the key combination and use Show Same Keybindings to list commands sharing it.
  6. Disable or adjust one conflicting binding, then turn the troubleshooting log off and repeat the original action.

The log can show that the key was detected differently from what you expected, that a command was blocked by a when condition, or that multiple commands share the same combination. If disabling an extension changes the dispatch, confirm by re-enabling it and repeating the shortcut; do not infer ownership solely from a matching command name.

Interpret the evidence without overclaiming

Each test answers a different question. Use the result to choose the next check rather than treating every change as a verdict.

Method Scope Effort What it distinguishes
Extension Bisect Enabled extensions Several prompted checks Narrows a large enabled set by halves; depends on accurate present/absent feedback
Manual disable/re-enable One extension at a time, globally or for a workspace Several reloads and retests may be needed Provides controlled confirmation for a short list or a single suspect
Disable all or --disable-extensions All installed extensions One broad comparison, followed by selective restoration Shows whether the symptom changes when the extension environment is off
Empty Profile Extensions and modified settings Switch profile and repeat the reproduction Separates profile configuration from a clean VS Code state
Keyboard shortcut troubleshooting Shortcut dispatch Enable logging and press the key Shows the detected key and invoked command; duplicate bindings can be inspected directly

Use a decision path

  • Symptom remains with all extensions disabled: do not blame an extension yet. Compare an Empty Profile and inspect workspace settings, project tooling, and VS Code diagnostics.
  • Symptom disappears with all extensions disabled: the enabled extension environment is implicated. Use Extension Bisect or grouped re-enablement to isolate the candidate.
  • Only one extension disabled makes the symptom disappear: repeat with the extension enabled and disabled several times under unchanged conditions. A repeatable result supports a compatibility or interaction report, but it still does not prove the extension is defective in every setup.
  • The issue appears only in one workspace: test workspace-specific enablement and settings. A global disablement result may hide a project-level condition.
  • The issue changes only in an Empty Profile: restore settings and extensions separately to identify whether configuration or extension code reintroduces it.
  • A shortcut still fails with extensions off: inspect key detection, Keyboard Shortcuts entries, operating-system shortcuts, and context conditions rather than continuing to bisect unrelated extensions.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Confirm before uninstalling or reporting

Uninstalling an extension immediately destroys a useful comparison and may remove configuration needed to reproduce the issue. Prefer disabling it first. Confirmation should include at least one run with the suspect disabled and one run with it enabled, using the same workspace, file, profile, and action. If the result is intermittent, repeat enough times to show a consistent difference and note the number of attempts rather than presenting a single lucky run as proof.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Also check whether an update changed the result. Record the extension version in each state, and do not combine an extension update, VS Code update, settings reset, and workspace change in one test. Those changes can be investigated later, but they cannot be attributed from a single combined experiment.

Best Value
Sale
Under Desk Cable Management Tray No Drill, Metal Mesh Cable Management Under Desk with Clamp Mount, 2 Hole Cable Tray with Wire Management and Cord Organizer for Home Office Standing Desk
  • 【No Drill Mounted】Cable management tray can be assembled in as little as 3 minutes or less-simply. Side clips easily clampe the edge of desk, pass through the holes on the sides, and secure excess cables with baskets. Desk cable management supports inward or outward installation to meet your needs in different scenarios, and provides you with great convenience when collecting and organizing wires.
  • 【Rubber Pad Protects Desk】Wire organizer under desk built-in soft rubber pads on the clamp protect your desk from scratches, so you will not damage your furniture or office.
  • 【Sturdy and Beautiful】Cord management under desk is made of high-quality carbon steel and holds about 15 lbs. The wire basket has 2 holes on each side of the tray to enable your cables to pass freely. Cable baskets are suitable for desk thickness use from 0.4" to 2.4".
  • 【Space Saving & Keep Organized】Desk cable management tray holds all your power cords, outlet strips, USB hubs and computer transformers hidden from your feet, and the data cables will not enter the vacuum cleaner to keep your desk clean and tidy. Desk wire organizer is also suitable for use in the kitchen and outdoors.
  • 【Reduce Safety Risks】Cable tray under desk keeps all plugs away from your kids, no more worry about tripping. Using 2 holes wire tray saves extra space, helps you easily cabling and wire protection. The mesh design is not easy to accumulate dust, but avoids safety accidents caused by messy wires.

Prepare a precise issue report

A maintainer can act on a report that identifies the conditions and the comparison. Include:

  • VS Code version and platform.
  • Workspace type and path context, such as local, remote, container, or WSL, when relevant.
  • Active profile and whether the test used a normal, Empty, or Temporary Profile.
  • Extension IDs and versions from code --list-extensions --show-versions, especially the suspected extension and any second extension required to trigger the behavior.
  • Numbered reproduction steps, including the exact file or project state and expected versus actual result.
  • Results with all extensions enabled, all disabled, the suspect disabled, and the suspect re-enabled.
  • Whether modified settings were present and what happened in an Empty Profile.
  • For shortcut problems, the detected key and invoked command from the Keyboard Shortcuts Troubleshooting output, plus any duplicate bindings shown by Show Same Keybindings.

Phrase the conclusion narrowly: “The behavior reproduced in workspace X with extension A version B enabled and disappeared when A was disabled” is supportable. “Extension A is broken” is broader than these checks establish. Mention an interaction when two extensions are required, and state when the symptom persists without extensions.

Common mistakes and recovery steps

Changing several variables at once

Installing updates, deleting settings, changing projects, and disabling extensions together prevents attribution. Reopen the original workspace, restore the documented state where possible, and repeat one controlled comparison.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Giving bisect the wrong answer

Extension Bisect relies on your report that the original symptom is present or absent. Testing a different file, command, or timing condition produces an unreliable candidate. Stop the round, recreate the original symptom, and restart the process with the exact same action.

Forgetting the reload

Some disablement changes prompt for an extension-host restart or window reload. If you continue without completing it, the old code may still be active. Accept the prompt, wait for the workspace to settle, and then repeat the test.

Confusing installed with enabled

The bisect process works on enabled extensions, while --list-extensions reports installed extensions. An installed extension that is already disabled is not part of the active bisect set. Record both states in your notes.

Assuming disappearance proves fault

Disabling extensions can remove an unrelated trigger, change timing, or suppress an interaction. Use the Empty Profile comparison and a disable/enable confirmation before naming a specific extension. If the evidence is only that the broad extension environment changes the symptom, report exactly that.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Recommended order for a fast, defensible diagnosis

  1. Write the exact reproduction and capture the VS Code, platform, workspace, profile, and extension inventory.
  2. Run the same action once with your normal setup so the baseline is clear.
  3. Use Extension Bisect when many enabled extensions are involved; otherwise disable the most plausible extension manually.
  4. For a broad check, use Disable All Installed Extensions or code --disable-extensions.
  5. Compare an Empty Profile when modified settings could be involved.
  6. For shortcut symptoms, read the dedicated troubleshooting log and inspect duplicate keybindings.
  7. Re-enable the candidate and repeat the original action to confirm the association.
  8. Report versions, conditions, results, and uncertainty without claiming more than the tests show.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.