Blogger Widgets Science Education and Technology: Memory Defrag – Does it Really Speed Up A Computer?

Friday, 27 December 2013

Memory Defrag – Does it Really Speed Up A Computer?

I’ve read a number of articles and seen a number of products claiming to speed up your computer using a method which really won’t work. It sounds logical enough, so some people buy into it, but it’s really just a scam. Here’s why it won’t work:

Scam Computer Speed Up: Memory Defrag

This must be my favorite of the scam ways to speed up your computer. I’ve seen several products which advertise that they will defragment your computer memory. They claim that this will lower the amount of memory your computer uses and speed up your computer.
In theory, both claims are true, but in practice, the speed boost is so minor that it doesn’t matter.
When a computer program wants to store information in computer memory, it asks the operating system (Windows) for the address of some free memory it can use. Windows reserves a block of memory for that program and gives the program the addresses. The program can’t write to memory directly (accessing hardware directly is the operating system’s job), so the program decides what data it wants to write to memory and then gives Windows the data and the address range to use.
The longer a computer has been on and the more programs it is running, the more fragmented memory becomes. As each program requests some memory and then, later, releases it when it’s done with it, Windows has to dedicate more and more of it’s memory to keeping track of which program has reserved which bit of memory.
That sounds like a major problem, but there’s a catch: managing the memory for 100 active programs only takes up a few kilobytes of Windows’s memory. Let’s say Windows needs 100 kilobytes of memory to manage other programs’ memory (a relatively high amount for a typical consumer desktop) and you have 4 gigabytes of memory. One kilobyte is one millionth of a gigabyte, so 100 kilobytes is 0.0025 percent of 4 gigabytes.
Defragmenting your memory could cut that 100 kilobytes in half, but that wouldn’t make any real difference in speed even if your computer was using all of its available memory.
The other argument made by memory defragmenters is that putting all of a program’s memory in consecutive blocks will speed up memory access, much like how a disk defragmenter speeds up access to magnetic disks. This makes almost no sense.
Magnetic disks have rotating platters and data-reading needles. It takes time to move the needle from one part of the disk to another, so keeping related data together can significantly speed up magnetic disks.
But computer memory (RAM) is solid state. It has no moving parts, so it doesn’t take your computer any more time to read from the left side of the RAM stick than to read from the right side of the RAM stick.
Now, once a again, there is a slight bit of truth to the claim. To get the best speed out of your RAM, you computer addresses it it chunks (often called words) rather than one bit at a time, so if the memory is spread out a lot, your computer may need to request more words than it would if the data was defragmented. But the typical modern computer can read nearly a gigabyte of RAM a second, meaning that defragmenting will only save you a trivial amount of time unless of you have giant programs and dozens of gigabytes of RAM and a serious fragmentation problem. I suggest you skip RAM defrag and find other ways of speeding up your computer.

No comments:

Post a Comment