MetallicPriest
MetallicPriest

Reputation: 30745

How to start a program with cold cache

I run a benchmark several times, to note down the mean reading. But I notice that after the first run, the subsequent runs are faster. I guess it has something to do with the Instruction Cache, so when I run the program next time, the benchmark already has instructions in the cache. Is there a way to start a program with both cold instruction and data caches?

Upvotes: 6

Views: 686

Answers (1)

rakib_
rakib_

Reputation: 142545

This is a normal behavior. One way to avoid this problem is run few warm up before the main run. These warm up runs will overwrite the cache memory that grown up previously running program. While calculating the mean value, exclude the warm up runs values only take real run. A various bench marking tools out there which takes these approach like. kernbench, lmbench etc. Where a warmup value is available.

And, if the benchmark you're running depends on data that needs to read from disk then, disk caching has some impact too, one way to avoid is to caching those data onto ram, if possible. This technique is used in kernbench, to avoid, disk cache related issue.

Upvotes: 4

Related Questions