3

How do I find the cache block size in Ubuntu, programmatically (with C++) or otherwise?

artless noise
  • 21,212
  • 6
  • 68
  • 105
Izza
  • 2,389
  • 8
  • 38
  • 60

2 Answers2

12

You can find it in /proc/cpuinfo; cache size for the total size, and cache_alignment for the block size.

Mike Seymour
  • 249,747
  • 28
  • 448
  • 644
0

One way is to fill an std::vector or just a plain array with random values, and do something simple, e.g. square each element in a loop. Then measure the execution time as a function of the vector length. You'll very clearly see a jump in the exec time once your vector does not fit into the cache.

ev-br
  • 24,968
  • 9
  • 65
  • 78