我使用通用Windows平台开发基准测试应用程序,评估Windows 10系统的CPU和RAM性能。
虽然我找到了不同的算法来对CPU进行基准测试,但我仍然没有找到任何可靠的算法或解决方案来评估内存的写入和读取速度。
如何在C#中实现这一目标?
提前致谢:)
答案 0 :(得分:1)
我不知道为什么托管代码无法实现这一点。数组访问代码变为普通的x86内存指令。它是一个很薄的抽象。特别是我不明白为什么你需要一个定制的操作系统。
您应该能够通过在大数组上执行memcpy来测试顺序内存速度。它们必须大于最后一级缓存大小。
您可以通过随机索引到一个大数组来测试随机访问。索引计算必须便宜,不可预测,并且必须有一个依赖链来序列化内存指令,以便CPU无法并行化它们。
老实说,我认为不可能。 RAM基准测试通常使用专用操作系统
RAM测试与RAM基准测试不同。
C#并没有给你那种对RAM的控制
当然,只需要新建一个大阵列并访问它。另外,了解存在的开销。唯一的开销是范围检查。
GC在基准测试期间没有影响。它可能由分配触发。