Linux Windows

How Windows Performance Is Affected by Hardware & Software

Bruce Epper 10-08-2015

With all of the advancements in computing technology, it can be hard to keep current. The jargon thrown around by sales associates when purchasing a new device seldom helps and it seems that those who are pushing you toward a specific computer don’t understand how 64-bit computing What Is 64-bit Computing? The packaging of a computer or computer hardware is crowded with technical terms and badges. One of the more prominent ones is 64-bit. Read More works or benefits the user beyond the ability to access more RAM How Much RAM Do You Really Need? How much computer memory do you need? Here's how to check your installed RAM and how much RAM your computer needs. Read More .


In this article, we will look at how the operating system and application software chosen to run on a 64-bit system, as well as a few features of the processor itself, affect the overall performance of the computer.

Processor and Operating System

Nearly all PCs on the market today are shipping with 64-bit processors and most of those will already have a 64-bit version of Windows Do I Have 32-Bit or 64-Bit Windows? Here's How to Tell How can you tell if the Windows version you are using is 32-bit or 64-bit? Use these methods and learn why it is important too. Read More preinstalled on it. This pairing is critical when you want to get the best performance out of your system. Although you can install a 32-bit operating system on a 64-bit computer, you would miss out on the additional benefits of the hardware.

When you install a 32-bit operating system What's the Difference Between 32-Bit and 64-Bit Windows? What's the difference between 32-bit and 64-bit Windows? Here's a simple explanation and how to check which version you have. Read More on a 64-bit computer, the effect is an instant conversion of a 64-bit processor to a 32-bit processor.

That is the best reason to ensure you are using a 64-bit operating system on any computer that has a 64-bit processor.

Processor Capabilities

Besides pairing an appropriate operating system with the hardware, elements of the CPU design are affecting system performance.  The number of cores available to do the processing is one of the big ones.


From Single to Multiple Cores

About two decades ago, almost all computers marketed to consumers used processors with a single processing core What Is A Processor Core? [MakeUseOf Explains] Every computer has a processor, whether it's a small efficiency pro or a large performance powerhouse, or else it wouldn't be able to function. Of course, the processor, also called the CPU or Central Processing... Read More in the package. With this type of design, it meant that the computer could only execute a single instruction at a time and the operating system could only assign a single execution thread to the processor at a time.


Today, a single silicon wafer may have 2, 4, or more cores on it and the package may have more than one chip. By placing more than a single core in the processor package, the operating system sees each core as an individual processor where it can assign process threads, and each core operates independently of the others. Thus, on a quad-core What Do "Dual Core" and "Quad Core" Mean? These days, most CPUs are dual-core, quad-core, or octo-core. But what does that even mean? Here's everything explained. Read More system, the computer can execute four instructions simultaneously – one on each core.

Connecting Cores with Hyperthreading

In 2002, Intel pushed out hyperthreading technology What Is Hyper-Threading? [Technology Explained] Read More which makes the operating system “see” two logical processors for each processing core on the chip. It works by having two distinct sets of processor state data, one for each logical processor, and a single shared execution core. This allows the operating system to assign an execution thread to each logical processor which is maintaining its own state data. When one thread is blocked because it is waiting for data or another resource, the other logical processor can use the execution core for its processing, unless it too is in a wait state. Performance gains by using this technology tend to range from 15 to 30 percent.


4th Generation Intel® Core™ i7 Processor Front and Back

This does not mean that a quad-core processor is twice as fast as a dual-core processor running with the same clock speed in a given situation or that an Intel processor with hyperthreading will perform better than one without the technology. Certain software factors can completely nullify the existence of additional processing cores.

Impact of Application Software

So, now that you have decided to get a new 64-bit Intel dual-core processor with hyperthreading and pair it up with a 64-bit version of Windows, you will get the best performance possible, right? Well, maybe.

While modern operating systems can take advantage of all the hardware has to offer, the application software you are using might not, especially legacy software.


The older single-core CPUs I mentioned above could only handle processing a single thread at a time. Much of the programming done at that time was written to use just a single thread. Using that software on a multi-core system will still result in it using just one core for that thread. This is why you may see a quad-core system running at 25% load in the Task Manager with a single core at 100% utilization and the other three cores seemingly idle. The workload isn’t spread out.


In order to take advantage of all of the processing cores in a system, the software must be designed with parallel processing and multithreading in mind. The idea here is to break the problem down into discrete components that can be completed independently of each other so the computer can complete each task on separate cores concurrently. This can reduce the time taken to generate the desired result. It also means that a thread for the user interface does not lock up when heavy processing of other threads is happening on other cores.

Even though a program has been designed with multithreading in mind, there is still the possibility that some of its functionality cannot be parallelized. One example of this is Microsoft Office applications that use Visual Basic for Applications (VBA) macros. A long-running macro is likely to consume an entire core until it terminates. Since a computer cannot automatically determine if a macro can be parallelized, it simply does not try to do it.


Improve Performance of Single-Threaded Apps

If you must use single-threaded legacy applications, especially if you need to run multiple ones simultaneously, your best bet for better performance is to set processor affinity for them. This will force them to only use specific processing cores. By doing this, you can ensure that even though they can consume an entire core’s processing power, they won’t be doing it on the same core, thus causing the processes to take longer to finish than absolutely necessary.

With Windows, you can set the affinity by opening Task Manager, right-click on the process name, select Set Affinity… from the context menu, clear the checkboxes for all processors you don’t want it to use then clicking on OK.


You can also do this from the command line using the /affinity flag of the start command.

start /affinity 2 notepad.exe

Note that the processor number used with the affinity flag is 1-based while it is zero-based when looking at Task Manager so this would start Notepad on CPU 1.

A similar functionality exists for Linux users with the taskset command. It is part of the util-linux package and is part of the default installation of most distros. If it isn’t currently on your system, you can install it with

sudo apt-get install util-linux

for Debian-based distributions or

sudo yum install util-linux

for Red Hat-based systems.

To use the command to start vlc on CPU 2, you would use

taskset -c 2 vlc

To change the affinity for a process that is already running with a process id (PID) of 9021 to use CPU 4 and 5, you would use

taskset -cp 4,5 9021

The other factor with the applications is the word length. While a 32-bit application can still store and manipulate both integer and floating-point 64-bit numbers, it must be done via “big math” libraries which take longer to perform the job than a 64-bit processor doing the same calculations natively. If an application requires the extended range and greater precision offered by 64-bit numbers, it will always be more efficient to use 64-bit applications 3 Websites to Find Software Compatible With 64-Bit Operating Systems Chances are, those of you who are buying a brand new computer in the next year will be getting your hands on something running a 64-bit operating system. x64 has its pros and cons, but... Read More for the task.

With some software, it doesn’t matter too much whether it is 32-bit or 64-bit. A 32-bit web browser will work just fine for most people.  With normal usage, it should not require scads of memory, even if you like to have dozens of tabs open. It will easily use multiple threads across your physical and logical processors and should not end up CPU-bound. The same applies to most word processing tasks. But if you will be photo or video editing, transcoding, running modeling software or doing other CPU-intensive tasks, or working with large data sets, you could wait longer than necessary without multithreaded 64-bit software.

The Final Take

So what is the best option? Best answer: it depends.

If you know you will be running an Excel spreadsheet on your system that uses long-running VBA macros, you would be better off with a dual-core system running at 3 GHz rather than a quad-core running at 2.2 GHz but if you are constantly bouncing between multiple multithreaded programs while doing your computer work or play, the reverse is true.

While generalizations never prove themselves out in all cases, the best desktop computing performance today will utilize 64-bit multi-core processors running a modern 64-bit operating system and 64-bit multithreaded applications for the most demanding tasks.

What kind of experiences have you had with 64-bit performance? Do you have 32-bit software that outperforms its 64-bit counterpart or is there no discernable difference between them? Let us know in the comments below.

Image Credit: Dismantling an old computer (CC by 2.0) by fdecomite, 4th Generation Intel® Core™ i7 Processor Front and Back (CC by 2.0) by Intel in Deutschland

Related topics: 64-Bit, Computer Processor, CPU, Windows Task Manager.

Affiliate Disclosure: By buying the products we recommend, you help keep the site alive. Read more.

Whatsapp Pinterest

Leave a Reply

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

  1. James Bruce
    August 11, 2015 at 11:36 am

    Why doesn't Windows and Linux automatically set processor affinity at launch time if the first core is already being used? Seems like a stupid waste of user effort to have them go in manually change that, when presumably it's pretty easy for a machine to automatically configure that on optimal settings. In fact, it looks like OSX does this for you, but I could be wrong.

    • Bruce Epper
      August 11, 2015 at 4:42 pm

      I haven't checked in newer versions of Windows, but NT and 2000 server editions used to set processor affinity to CPU 0 for the process scheduler. Everything else could grab any available core. I would imagine it remains pretty much the same today.

      By setting the affinity, you are locking one particular process to that specific core. It does not prevent other processes from using that same core; it just prevents that process from using other cores. With a CPU-intensive process it is unlikely another process will end up on the same core, but it is still possible.

      If the operating system set affinity for every process it creates based on core usage at the time the process started, you could easily end up with certain cores under utilized while others were being over utilized. By allowing new processes to run on any core (the default for Windows and LInux, and probably OS X too), the workload tends to be more evenly spread across all available cores.

      I'm not an OS X user, but I don't see why it would do anything different.

      With the exception of a few system processes or exceptions like I mentioned in the article, setting processor affinity can have a negative impact on overall performance so it should be used judiciously.

  2. Anonymous
    August 11, 2015 at 4:43 am

    "If you know you will be running an Excel spreadsheet on your system that uses long-running VBA macros, you would be better off with a dual-core system running at 3 GHz rather than a quad-core running at 2.2 GHz"

    Not necessarily. Most Intel CPUs these days have Turbo Boost, which will increase the speed of cores that are in use if they're not all being used (as long as there's the thermal room to do so, which there usually is if you're not taxing all the cores). So if I'm only using two cores of my quad core CPU, each core is probably going to run a bit faster than if I was using all four, and if I'm only using one core, it's going to go even faster again. So you get the best of both worlds, really: parallelisation when you need it, high single thread speed when you don't.

    And hey, even without Turbo Boost, if you have cores to spare, you could always play a game or something while you're waiting for your VBA macros to finish :)

    • Bruce Epper
      August 11, 2015 at 5:08 am

      Only if Turbo Boost pushes the clock frequency above the 3 GHz mark on the quad-core. And if the dual-core also supports Turbo Boost, it will still have a better chance of finishing first.

      Also, Turbo Boost may only run at an elevated frequency for short bursts of time depending on number of active cores, workload, estimated current consumption, estimated power consumption, and processor temperature. Even then, it may not hit the peak Turbo Boost frequency rating for the processor.

      One cannot guarantee that it will run at a higher clock speed for the duration of the process either. You could have a processor with a 2.2 GHz base clock that can go to 3.3 GHz with Turbo Boost, but it may only peak at 2.9 GHz through the macro and end up with an average through the entire run of 2.7 GHz in which case, the dual-core would still end up finishing first.

  3. Anonymous
    August 10, 2015 at 8:51 pm

    "In 2002, Intel pushed out" ...?

    I think something's missing.

    • Tina Sieber
      August 11, 2015 at 1:29 am

      Must have happened during editing and has been fixed now.

    • Bruce Epper
      August 11, 2015 at 1:29 am

      Thanks for the heads up, Dan. We've got it fixed now.