文号
t53180
阅读
16601
回复
41
收藏
22
【测试】15GByte/s: 使用SSE2指令集加速的内存测试工具
2012/12/23
IP:四川
QQ截图20121223011619.jpg
如图,在我的i7 3610QM DDR3 1600平台上面,可以达到15GByte/s左右的检测速度。

流程:让用户输入内存大小,然后向系统申请内存。将申请到的内存填满0101101001011010...这样的数据。
然后按照用户输入的次数,连续地从内存中读出数据。如果读出的数据和当初写入的相同,则认为这段时间里,内存中没有产生错误。检测过程中出现的数据不一致的情况将会被记录,在每一次读取完毕后会输出记录结果。如果输出的都是0,代表没有出错。

检测原理:读出的数据和原来写入的数据作异或运算。运算结果中的1(代表两个操作数中的某个位不一致)将会用 或运算 记录在错误记录寄存器里。

SSE2指令集:单条指令可以操作128位数据(包括从内存中读出以及往内存中写入)。比32位的一般方法快接近4倍。
现在大部分的台式机处理器都支持SSE2指令集。

下面的zip压缩包包含程序和源文件。在visual studio 2012下编译通过。
存在的问题:发给一个用XP的兄弟,说运行不了。所以希望大家帮忙测试这个程序,可以晒晒自己的配置和自己的内存检测速度,也可以反馈遇到的问题。
我的测试平台是win7 64位 微软.NET框架全部安装,微软VC++运行库全部安装。
如果在您的电脑上不能运行,请立即反馈,万谢。


//补充:已经用vs2010重新编译并且上传了压缩包。修复了不少bug。
attachment icon memtestSSE.zip 38.14KB ZIP 66次下载
+100
科创币
phpskycn
2012/12/25
-
novakon作者
14年0个月前IP:未同步
481228
3楼
回 1楼(古人) 的帖子
非常感谢古人同志参与测试!古人的测试结果显示,虽然处理器差一个档次,但是内存操作速度差异不大。原因有待研究。

这个程序是单线程的(至少编译时如此),但是在我的4核处理器上会达到30%左右的处理器占用率。
+20
科创币
古人
2012/12/23
合作愉快
引用
评论
novakon作者
14年0个月前IP:未同步
481235
4楼
引用第2楼badboy-fly于2012-12-23 12:34发表的  :
这测试有什么用求解[s:274]  




这个程序可以某种程度上反应您的电脑处理器和内存之间的数据吞吐速率。


我刚才试了一下,如果仅仅是连续地将数据读取到CPU的128位寄存器内,而不做逻辑运算校验结果,可以达到32GByte/s.
所以15GByte/s已经算是相当快了。
+1
科创币
badboy-fly
2012/12/23
原来如此~
引用
评论
novakon作者
14年0个月前IP:未同步
481278
6楼
到目前为止,还没有人遇到过内存出错的情况。哪位编程高手能偷偷修改一下内存,产生一个错误,让这个程序抓到一次呢。。。
引用
评论
novakon作者
14年0个月前IP:未同步
481308
14楼
引用第9楼bg8npk于2012-12-23 16:33发表的  :
5917
I7 620M 4G DDR3 1333*2




看来不同架构版本的处理器,虽然速度差不多,但是效率有较大差别。
引用
评论
novakon作者
14年0个月前IP:未同步
481381
19楼
引用第13楼向钱看向厚赚于2012-12-23 16:57发表的  :
此时内存超到1600 结果..




超频赞扬,我就没有成功超过我的内存。


从目前的情况来看,AMD党和i系列一代以前情况危急啊
引用
评论
novakon作者
14年0个月前IP:未同步
481382
20楼
引用第15楼金星凌日于2012-12-23 17:10发表的  :
这个没法测试完整的内存吧。总有一部分内存是被操作系统保留的。

是的。

另外程序有限制,申请内存不能超过1800M。可以开多几个程序同时跑。


凡是用此程序抓到内存错误的,截图奖励100KCB。。。
引用
评论
笔记
{{note.content}}
{{n.user.username}}
{{fromNow(n.toc)}} {{n.status === noteStatus.disabled ? "已屏蔽" : ""}} {{n.status === noteStatus.unknown ? "正在审核" : ""}} {{n.status === noteStatus.deleted ? '已删除' : ''}}
  • 编辑
  • 删除
  • {{n.status === 'disabled' ? "解除屏蔽" : "屏蔽" }}
我也是有底线的