【发布时间】:2014-02-16 01:08:07
【问题描述】:
我对此有一个大致的了解。这就是我的想法:
首先,找出我将使用的 L1 缓存的大小。然后创建一个数组(字节数大到足以容纳在 L1 缓存中),编写一个程序来访问数组的每个元素。然后在每两个循环中创建时间戳。
对于二级缓存中的延迟,我可以使阵列更大以到达二级缓存。
但实际上我不知道如何开始。我对每个缓存的数组应该有多大以及如何用上面的想法编写这个C程序没有一个清晰的概念。
有人可以帮我处理这个 C 程序吗?任何帮助将不胜感激!
非常感谢!
【问题讨论】:
-
“我不清楚每个缓存的阵列应该有多大”:处理器制造商通常会提供有关每个处理器型号的缓存大小等细节的信息。这可以在他们的网站上下载。
-
也许更容易获得 CPU 型号,然后访问某种数据库以获得缓存延迟,正如@FrankPI 所说。
-
@acarlon 我不知道你可以限制对一个进程的缓存访问