我正在使用通用 Windows 平台开发一个基准测试应用程序,用于评估 Windows 10 系统的 CPU 和 RAM 性能。
虽然我找到了不同的算法来对CPU进行基准测试,但我仍然没有找到任何可靠的算法或解决方案来评估内存的读写速度。
如何在 C# 中实现此目的?
提前致谢:)
最佳答案
我不明白为什么托管代码不可能做到这一点。数组访问代码变成普通的 x86 内存指令。这是一个薄弱的抽象。特别是我不明白为什么您需要定制操作系统。
您应该能够通过在大数组上执行 memcpy 来测试顺序内存速度。它们必须大于最后一级缓存大小。
您可以通过随机索引到一个大数组来测试随机访问。索引计算必须是廉价的、不可预测的,并且必须有一个依赖链来序列化内存指令,以便CPU无法并行化它们。
Honestly I don't think its possible. RAM benchmarks usually run off of dedicated OS's
RAM 测试不同于 RAM 基准测试。
C# doesn't give you that kind of control over RAM
当然,只需新建一个大数组并访问它即可。另外,了解存在的管理费用。唯一的开销是范围检查。
GC 在基准测试期间没有影响。它可能是由分配触发的。
关于c# - RAM 性能基准测试 - UWP 和 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32763841/