How to clear Windows File Cache?

For testing purposed I need to clear file cache (for example to measure file operation performance).

I found CacheSet from sysinternals, but pressing Clear there doesn't help. A file that I just copied to Nil when copied again do this in a blink of an eye (while the initial operation took significant 2 seconds).

Does it mean that HD has its own caching that can't be canceled or cleared?


Solution 1:

I'm not sure how much relevance this has to your question, but to answer your 2nd part, yes, hard-drives have their own internal hardware cache - usually 2, 8, 16, 32 or recently 64 megabytes.

Aside from that, Windows has a feature called Disk Write Caching which may help you. It can be enabled/disabled on a per-drive basis doing the following (directly copied from here):

  1. Right-click My Computer, and then click Properties.
  2. Click the Hardware tab.
  3. Click Device Manager.
  4. Click the plus sign (+) next to the Disk Drives branch to expand it.
  5. Right-click the drive on which you want to enable or disable disk write caching, and then click Properties.
  6. Click the Disk Properties tab.
  7. Click to select or clear the Write Cache Enabled check box as appropriate.
  8. Click OK.

Solution 2:

Here is the easy solution:

Start one (or more) instance(s) of MemAlloc. Allocate an amount of RAM equal with about 80% of total amount of RAM you have installed in your computer. This will force Windows to release the memory it reserved for file caching. Close all MemAlloc instances. Done.

Note: MemAlloc can allocat maximum 2GB of RAM. So, if you have more than 2GB of RAM in your computer, start additional instances of MemAlloc.