Adventures in Windows ReadyBoost

Performance Monitor, exhibit 2

Using two 32GB USB sticks. Light blue = disk read, purple = skipped. SKIP THOSE READS BABY!

Let us talk about the Windows ReadyBoost, why don’t we.

It is a little known (?) part of Microsoft Windows which uses flash memory (such as an USB memory stick, or a SD card) as an intermediate storage between the hard disk and the random-access memory. It was introduced with the ill-fated Windows Vista, which needed more internal memory than was common on new computers at that time. Unfortunately, ReadyBoost was a bit of a quick fix (not to say “kludge” or “desperate attempt”) and not as effective as it could have been. Not being very good at the one thing it was meant for, it pretty much faded ignobly into obscurity. However, the friendly folks at Microsoft kept tinkering with it, and the version that was released with Windows 7 was actually greatly improved. Not that many people bothered to try it. In the meantime, it had become customary to sell computers with much more RAM, both because of lower prices and because it was obvious that Windows Vista need a lot more memory than XP had done. Windows 7, on the other hand, was better than its predecessor at using the computer’s resources.

***

At my home office, I have an office computer and a gaming computer. The office computer is a laptop from 2012. It was a beast of its time, with 6 GB of RAM and a core i7 processor. However, it was also the last computer I bought with a 5400 rpm hard disk and no SSD. (The gaming computer has an SSD and no internal hard disk.) The laptop also came with support for USB 3.0, a technology whose time has now come, but was still fairly rare and expensive back then.

So yesterday I saw a 32 GB USB 3 flash stick at an affordable price in the local hardware store. When I plugged it into my USB 3 hub, the laptop helpfully asked if I would use it for ReadyBoost. However, it could only use 4 GB. It turns out that the stick was formatted with FAT32 rather than NTFS. So I went ahead and reformatted it, then used the whole stick for ReadyBoost.

***

Despite the vague name, ReadyBoost actually does only a few specific things. It does not boost processor speed, despite its name: If anything, it uses the processor a bit more since it needs to perform various calculations and also move data around from here to there to elsewhere. What it does is:
1) When I save data to disk, it first saves them to the USB stick, which is faster. Later it saves a copy of those data from the stick to the hard disk when it has nothing better to do.
2) When I load data from disk, it loads them from the USB stick instead, if they are there. They could be there because I had already saved them there, as above. But they could also be there because Windows has creepily watched what I do and made guesses as to what I am going to do next, and quietly copied just that stuff onto the stick while it was bored waiting for me to press the next key.

So the ideal computer for ReadyBoost has:
-Not much RAM (so you need to swap data in and out of it frequently.)
-A slow hard disk. (Laptops typically had slower disks, before SSD.)
-A fast processor (to move all those data twice as often, and to stalk the user and guess what he or she will do next.)

Now, I have a decent amount of RAM for a five year old machine, but the two other criteria fit pretty well. Given that online articles vary from dismissing ReadyBoost completely to praising it as almost like adding more RAM, I was curious. What would happen?

***

The first thing I noticed was that the small light on my USB stick started blinking eagerly. Watching on the Computer Management app (specifically Monitoring Tools – Performance Monitor), I could see the cache filling up rapidly. Clearly the computer already had opinions on what I would need!

However, as I did various everyday things on my computer, I could not notice much if any speed improvement. Performance Monitor pretty much verified this: Skipped reads stayed stubbornly low compared to total reads, like 2-5%. Not much to write home about. Of course, this was the first hour or two, so if Windows had not expected me to use ReadyBoost, it might not really know what to prepare for. I should give it more time.

After I stopped actively using the computer, something happened. From time to time, there was a small blink in the laptop’s harddisk light, as there usually is when it is left to itself. I still had the Performance Monitor running, and it showed that an increasing number of the disk reads were now skipped. After a few minutes, the hard disk light was on almost constantly, and the monitor showed frenetic activity. Again, this is normal. By now, skipped reads (due to cache) were fairly close to total reads, although not quite identical. But we’re talking about 95% or so for the most part, the reverse of what I saw when I was using the machine actively. This went on and on. I don’t know what Windows does when it has the machine to itself, probably some kind of maintenance, checking and optimizing. I am sure it is some good purpose, at least as seen by Windows. And it sure knows how to use ReadyBoost.

So… first impression: Windows has no idea what I am doing, but it sure knows what Windows is doing. Everybody who already guessed this wins a big fat no-prize.

***

 

Reading up more on the topic, I found that ReadyBoost can use up to 8 flash devices of up to 32 GB each. Some say it can even read and write to multiple drives simultaneously, distributing the load across the various flash drives. If so, the limit would be the speed of the USB 3.0 controller, which should be able to handle around 6-7 drives working at full speed.

I am not quite that adventurous, at least not right away, but the next day I bought an extra USB 3 hub and a second USB 3.0 memory stick, formatted it like the first and plugged it in.

***

The graphics above show Windows having a little time to itself on the second day, after it had gotten used to having two thumb drives to play around with. It seems there is a pretty good match between disk reads and skipped reads most of the time. Which I am sure is a good thing. It is also a lot more than yesterday.

But this is Windows doing Windows things. When it comes to my actual use of the computer, there was still no noticeable difference. But this, I realized, was because the system was already fast. The Asus N56V was, as I said, a beast of a laptop when it came out 5 years ago. Total overkill. Even today, it is more than fast enough to read, write, dictate, play music or video, while sharing the latest Ubuntu Linux torrents in the background. Would I even be able to detect an improvement from 2 seconds to 1.5 seconds when opening a complex document? I needed to challenge the machine, push it closer to its limits. Luckily I knew how to do that.

Mostly out of curiosity I had installed Civilization 6 on my external hard drive. The game from October 2016 is in my Steam library, and was originally installed on the gaming machine, but after a while that machine could not longer play it. I then tried running it on the laptop, which is older and weaker, but the game hadn’t been playable there, as expected. Well, now it was. The graphics were grainy but the game started and ran just fine even with a mid-sized world. HUGE SUCCESS! It’s hard to overstate my satisfaction… ^_^

Basically what I have done is add an extra layer of slow memory / fast disk between the existing internal memory and hard disk. Adding more thumb drives not only increases the size of this layer, but also makes it faster, supposedly.

Is it useful? Not really for small everyday tasks. But it allows new things that were not practical on laptops before, like large sprawling games (Sims 3 anyone?), huge spreadsheets and databases, video recording and editing.