What has more impact on performance: Readyboost or paging file on a system with 2GB RAM?

I have my paging file turned off in Vista as i have heard that it is not needed and in some cases may slow down a system that has >=2GB RAM. (no sure how true this is, but i notice that having it switched off doesn't really impact performance noticeably.

I have been reading about Readyboost and it sounds like caching with the benefits of flash memory (low latency etc.)

Which of these would i be better off using?

edit: i have 2gb, and have been using the machine without a pagefile today, and haven't noticed much obvious performance degradation, but will take your suggestions on board. would be good if any claims can be backed up please.


Solution 1:

Regarding page files, Mark Russinovich (pretty much the expert on Windows in everyway) wrote an article that can be found here: http://blogs.technet.com/markrussinovich/archive/2008/11/17/3155406.aspx.

He finds that turning the pagefile off is a huge mistake. The key quote is probably:

Perhaps one of the most commonly asked questions related to virtual memory is, how big should I make the paging file? There’s no end of ridiculous advice out on the web and in the newsstand magazines that cover Windows, and even Microsoft has published misleading recommendations. Almost all the suggestions are based on multiplying RAM size by some factor, with common values being 1.2, 1.5 and 2. Now that you understand the role that the paging file plays in defining a system’s commit limit and how processes contribute to the commit charge, you’re well positioned to see how useless such formulas truly are.

Since the commit limit sets an upper bound on how much private and pagefile-backed virtual memory can be allocated concurrently by running processes, the only way to reasonably size the paging file is to know the maximum total commit charge for the programs you like to have running at the same time. If the commit limit is smaller than that number, your programs won’t be able to allocate the virtual memory they want and will fail to run properly.

So how do you know how much commit charge your workloads require? You might have noticed in the screenshots that Windows tracks that number and Process Explorer shows it: Peak Commit Charge. To optimally size your paging file you should start all the applications you run at the same time, load typical data sets, and then note the commit charge peak (or look at this value after a period of time where you know maximum load was attained). Set the paging file minimum to be that value minus the amount of RAM in your system (if the value is negative, pick a minimum size to permit the kind of crash dump you are configured for). If you want to have some breathing room for potentially large commit demands, set the maximum to double that number.

Solution 2:

If you have >= 2GB then you have no need of Readyboost, unless you use an application with outrageous demands. If you have 4GB then don't even think about it, since Vista will use almost 2GB for the system cache (minus the video cache). Under normal use you won't notice any performance improvements in I/O speed, and the additional processing of Readyboost might even drag down the performance of your CPU.

And as Phoshi remarked: don't be without a pagefile!