【发布时间】:2018-10-05 12:17:46
【问题描述】:
在使用新硬件时,我编写了一段 C 代码来测试 RAM 速度和磁盘速度。本质上它是 3 行在 RAM 中写入 5 GB 并将其写入文件,我围绕该文件设置了一些计时器:
long long int AMOUNT = 5*1024*1024*1024l;
FILE *file_handle = fopen('test.bin', 'wb');
handle = malloc(AMOUNT);
memset(handle, 0, AMOUNT);
fwrite(handle, AMOUNT, 1, file_handle);
然后我用 dd 使用 ramdisk 或 tempfs 进行了尝试:
mount -t tmpfs /mnt/temp1 /mnt/temp1
dd if=/dev/zero of=/mnt/temp1/test bs=1M
然后,回到磁盘:
dd if=/mnt/temp1/test of=/home/user/test bs=1M
在下表中,我的结果,我也插入了speed memtest 7.5。我不明白 9.0 以及 memtest 和其他数字之间的巨大区别......谁能解释一下?
【问题讨论】:
-
您可以归咎于软件和操作系统开销。我在我的机器上尝试了 dd 并得到了 4.4 GB/s,这比 CPU 的能力慢很多倍(多线程 memcpy)。
-
@Lundin 我看不出提问者在哪里不“谦虚”,或者他们在哪里“责备”。
-
@nullp0tr 对不起,在我上面的评论中是针对安蒂的。
-
我仍然想知道为什么 malloc 在具有 2133Mt/s 内存的 6600U 上如此之快
-
排除了编译器的差异...排除了 INT 而不是 LONG LONG INT...只是不明白