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