【发布时间】:2018-05-06 01:29:45
【问题描述】:
我想编写一个能够对从主内存读取的数据运行基本操作的 C# 程序,以便我可以尽可能接近主内存读取带宽。
我想我们可以确定在使用非常大的数组时不使用缓存。到目前为止,使用多线程和 long[] 我从未能够超过 2 GB/s 秒的限制,而我知道现代 RAM 带宽至少更像 10 GB/s。 (我有一台现代计算机,运行在 64 位,发布模式当然没有调试)。
你能提供一个能够接近最大带宽的 C# 程序吗?如果不能,你能解释一下为什么 C# 程序不能做到吗?
例如:
- 准备:创建一个(几个?)大数组并用随机数填充它
- 主要步骤:对数组中的所有元素求和(或任何低 CPU 操作)
【问题讨论】:
-
您的意思是要获取内存详细信息还是我们在这里谈论基准测试?
-
Can you provide a C# program capable ofStackoverflow 不是代码编写服务,也不是教程网站。请阅读How to Ask 并采取tour -
@Zack:我想对读取和使用 RAM 内容的程序进行基准测试。如果这是您的问题,这不适用于对某些特定 RAM 设备进行基准测试。它更多的是关于 C# 基准测试而不是 RAM 基准测试。
-
我要求澄清,如果你的问题足够清楚并且包含很多资源,我不会这样做