Rob*_*nes 15
根据" 每个程序员应该了解内存的内容 ",Ulrich Drepper可以在Linux上执行以下操作:
一旦我们有了内存需求的公式,我们就可以将它与缓存大小进行比较.如前所述,缓存可能与多个其他核共享.目前{肯定会很快成为一种更好的方式!}在没有硬编码知识的情况下获取正确信息的唯一方法是通过/ sys文件系统.在表5.2中,我们已经看到了内核发布的有关硬件的内容.程序必须找到目录:
Run Code Online (Sandbox Code Playgroud)/sys/devices/system/cpu/cpu*/cache
这在第6节:程序员可以做什么中列出.
他还描述了图6.5中的一个简短测试,如果你无法从操作系统中获取它,它可用于确定L1D高速缓存大小.
我在他的论文中还有一件事: sysconf(_SC_LEVEL2_CACHE_SIZE)在Linux上进行系统调用,它应该返回L2缓存大小,尽管它似乎没有很好地记录.
kus*_*sma 11
C++本身并不"关心"CPU缓存,因此不支持查询语言中内置的缓存大小.如果您正在为Windows开发,那么可以使用GetLogicalProcessorInformation()函数来查询有关CPU缓存的信息.
读取 cpu (x86) 的 cpuid,然后通过查找表确定缓存大小。该表必须填写 CPU 制造商在其编程手册中发布的高速缓存大小。
| 归档时间: |
|
| 查看次数: |
29841 次 |
| 最近记录: |