Hacker News new | past | comments | ask | show | jobs | submit login

In case you are wondering about your cache-line size on a Linux box, you can find it in sysfs.. something like..

    cat /sys/devices/system/cpu/cpu0/cache/index0/coherency_line_size



  grep . /sys/devices/system/cpu/cpu*/cache/index*/coherency_line_size
would be better, but

  lscpu -C
is more useful.


Didn't know about 'lscpu -C'.. thanks!


Another (more portable) way to get the cache line size is to use std::hardware_(destructive|constructive)_interference_size from C++17.

While it's more portable, there are some drawbacks. Drawbacks with this approach are: (1) the statically known cache line size might not be right if you deploy your code to a target CPU different from the one you compiled for, (2) using this value to define structure + member alignment in headers could end up with interesting bugs if different source files including the header are built with different flags. Also: your toolchain might not support it yet.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: