I’ve been talking a lot about how different computer parts affect the computer “speed”. Most of the time, “speed” is a pretty ambiguous term, but if we want to buy the best computer for our needs we need a better definition. Luckily, we know enough about the computer’s inner working to finally give it a good definition:
A computer’s speed is defined by the time between you initiating action and when it completes the task you asked.
Put simply, a fast computer will do what you ask quickly, where a slow computer will take a long time to do what you need.
Being a computer person is all about being able to break down a high level task into its smaller, more manageable components. So let’s break down these 4 common tasks to see what part of the computer is responsible for its perceived speed.
Action: Pressing the Power Button
Task Complete: Desktop is showing, ready to start a program
When you start a computer, first thing that happens is the motherboard powers on all the absolutely necessary components like RAM, CPU, Disk Drive, and GPU. Next, it runs some super low-level code called the Basic Input Output System (BIOS) that gets all the components initialized properly and does some simple testing to make sure everything is communicating properly. Once the BIOS has confirmed everything’s all set, the CPU loads code from your hard drive called the Bootloader. The Bootloader then takes over, sets up all the RAM, and begins copying low-level Operating System (OS) code from your Disk Drive to your RAM. The low-level OS takes over once it’s all loaded up, and starts to load the rest of the OS into the RAM. Now that both the Low- and High-level OS code is loaded, it can start running startup scripts that load even more code into memory. You know, things like Spotify that decides it needs to start up with your computer by default, or Adobe Updater that makes sure to remind you to update Acrobat Reader even though you haven’t opened a PDF with the software in years. Phew that was a lot. If everything went right, then you can finally get to what it is you actually wanted to do with your computer.
Notice how all the CPU did in each step was shuffle data between your Hard Drive and you RAM. Your startup speed is dominated by how quickly code can get from its persistent home on the Hard Drive to where it can actually be run in RAM.
Also to note, the speed is affected by the size of the code needed to run. A lightweight OS like Xubuntu Linux has barely any code to load into memory, so it loads quickly no matter what it’s stored on. Meanwhile, the loading times of a bloated OS like Windows with its multitude of rarely-used features is very dependent on having quick persistent storage read speeds.
Takeaway: look for a fast Disk Drive, and remove as many unnecessary program from startup as possible.
Browsing the web
Let’s be honest, most of the time you start up the computer, it’s to waste time on the internet. Even if that wasn’t your first goal, you and I both know it’s only a matter of time.
Action: Clicking the Browser icon
Task Complete: Homepage loaded
First, the OS reads the program from the Hard Drive into RAM. The CPU then runs the code, which renders the window on your screen and requests data from the internet. The data then gets loaded to the RAM where the CPU can render the webpage on the screen.
So much simpler than the computer startup since all the prerequisite code was already in RAM! Here, the CPU is doing some rendering, but for the most part it’s just shuffling data from the Disk Drive to the RAM again! Yes, internet speed is important, but that speed is generally dependent on your network, not your computer. Once again, the read speed of the hard drive is the main driver of speed.
Now I’ve shamed you into at least having an empty Word document open while you ponder the complexities of human society, haven’t I?
Action: Start a second program, switch between the two
Task Complete: Work on two programs simultaneously
With your web browser already in RAM, your computer starts to load Word Processor code from the Disk Drive to the RAM. This can go two ways:
1) There’s enough room for both programs
Nice! The Word Processor code gets loaded next to the web browser code and your CPU can switch between them as fast as you can. The CPU does a little rendering for both sets of code when you interact with the respective program.
Once again, Disk Drive to RAM speed is the biggest bottleneck! Big surprise, right?! Are you catching the theme of this post yet? The CPU still has to render the two windows, so it’s definitely relevant, but any remotely modern CPU will handle modern code no problem.
2) There’s not enough room for both
Oh dear. You can’t load your Word Processor code into RAM until there’s enough room. So your CPU moves the Browser’s code to a dedicated place on the Disk Drive called the Pagefile. Now that there’s enough room, you can load the rest of the word processor to RAM. When you switch back to the Browser, the CPU can’t run code directly from the Pagefile, so it has to switch everything around again. Word from RAM to the Pagefile, browser from Pagefile to RAM.
In this case, Disk Drive read and write speeds are the main bottleneck. But there’s a twist: even if you get the absolute fastest Disk Drive on the market, this switching around will still be horrible. Instead, solve the bigger problem by getting more RAM!
Takeaway: Having enough RAM is absolutely vital to doing more than one thing at once. By making sure you can keep everything you’re working on ready to be executed, you avoid the inefficient musical chairs routine of moving data from RAM to the Pagefile. But having a fast Disk Drive is also important for initial loading.
Playing a game
Action: Clicking the game’s icon
Task Complete: being immersed in Skyrim for like the 5th time
If you’ve made it this far, you should be able to guess what I’m going to say: the first step is to load the code from the Disk Drive to the RAM. Now here’s where things start to differ. You see, because now, instead of rendering a single browser window, the code wants to render a whole 3d world with dynamic shadows and high-resolution textures. This is too difficult for a CPU to do, so all this code gets sent to the GPU for some sweet super-parallel computing. The CPU does stuff like controlling the AI players and feeding the GPU the data it needs. What determines a game’s speed is how quickly the CPU and GPU can render the scene. While Disk transfer rate will affect how long it takes for a new scene to load, waiting longer at loading screens is less important.
In all the examples above, this is the first time the CPU and the GPU were the determining factor of perceived speed. The same goes for other compute-heavy tasks like engineering simulations or video rendering. I consider these advanced tasks because they rarely get run on computers that aren’t built specifically for these compute-heavy tasks.
For just about everything you do on a computer, Disk transfer rate most prominently determines how fast your computer feels
Let me say that again: splurge on a faster Disk Drive before putting money into any other component
RAM is next most important component if you plan on doing more than one thing at once.
CPU and GPU speeds are rarely the cause of the symptoms of a slow computer