c# - RAM 性能基准测试 - UWP 和 C#

标签 c# algorithm benchmarking ram uwp

我正在使用通用 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/

相关文章:

algorithm - 按属性查找相似产品

java - 找到表达式 (2^x)*(3^y)*(5^z) 的第 K 个最小数

python - 如何在不添加任何代码的情况下在 Python 中对单元测试进行基准测试

java - 如何创建一个方法来测量执行一个方法所花费的时间

像 nosetests 这样的 Python 基准测试工具?

c# - 如何在 COM 事件源和处理程序中指定 "event type"?

c# - 如何按名称查找 TimeZoneInfo

c# - 用于对我无法轻松创建的返回类型进行单元测试的选项

algorithm - 循环迭代分析

c# - 寻找如何添加调整大小按钮