- 主题:内存拷贝性能受哪些因素的影响
按帖子里的试了一下memmove和手写的简易版的memcpy,没有效果。
手写的memcpy想想也不应该比调用api的快,毕竟会用各种指令集优化,他里面居然说有效果也是奇了怪。
【 在 z16166 的大作中提到: 】
: 这有个关于linux的同样问题,
: 它这个除了memcpy的指令实现不同(在你的windows上可能没这个问题,因为应该是同一个exe拿去跑server和workstation的),还提到了:
: stream store
: ...................
--
FROM 101.228.56.*
会搞的,会快的。
可以看看intel DPDK里的这个memcpy优化,有点意思。优化后,比(当时)glibc里的快
https://www.intel.com/content/www/us/en/developer/articles/technical/performance-optimization-of-memcpy-in-dpdk.html
【 在 grainbuds 的大作中提到: 】
: 按帖子里的试了一下memmove和手写的简易版的memcpy,没有效果。
: 手写的memcpy想想也不应该比调用api的快,毕竟会用各种指令集优化,他里面居然说有效果也是奇了怪。
:
--
FROM 125.35.123.*
能操作console的话,分别禁掉一个cpu和3条内存试试
【 在 grainbuds 的大作中提到: 】
: 一台配置较高的服务器上memcpy的性能居然不如一台老旧的笔记本电脑,测试了拷贝不同大小字节的数据,最差的情况(4MB数据拷贝)居然差了4倍,400ms vs 100ms(循环500次总时间)。
: 服务器配置:2 * Intel Xeon 6242R + 4 * 8G DDR4 3200 ECC
: 笔记本配置:Intel i7-6820HQ + 2 * 8G DDR4 2133
: ...................
--
修改:leadu FROM 123.116.210.*
FROM 123.116.210.*
不要怀疑你的测试结果。
对于单线程而言,内存效率取决于从cpu的L1D转移数据的延迟。由于应用场景的不同,intel的桌面端cpu的延迟要优于服务端cpu,内存效率自然更高。
这个资源库有更为详细的测试,有各种memcpy方法,在xeon以及其他cpu上的测试结果,可供参考。
https://github.com/marcmicalizzi/memcpy_test
另外按照intel的建议,服务端cpu内存操作应尽可能的使用nt stream store。大内存拷贝使用ermsb。
【 在 grainbuds 的大作中提到: 】
: 一台配置较高的服务器上memcpy的性能居然不如一台老旧的笔记本电脑,测试了拷贝不同大小字节的数据,最差的情况(4MB数据拷贝)居然差了4倍,400ms vs 100ms(循环500次总时间)。
: 服务器配置:2 * Intel Xeon 6242R + 4 * 8G DDR4 3200 ECC
: 笔记本配置:Intel i7-6820HQ + 2 * 8G DDR4 2133
: ...................
--来自微微水木3.5.12
--
FROM 223.167.168.*
那反过来故意跨numa变慢没有?注意cpu要和内存配合设置的,另外warmup因素有没有影响?
【 在 grainbuds 的大作中提到: 】
: 现在使用的是Windows系统,我查了一下,尝试使用VirtualAllocExNuma从同一个node分配内存,测试下来没有变化,不知道是否正确。
: --
发自「今日水木 on M2012K11AC」
--
FROM 101.224.67.*
厉害
【 在 KillnCov (KillnCov) 的大作中提到: 】
: 不要怀疑你的测试结果。
:
: 对于单线程而言,内存效率取决于从cpu的L1D转移数据的延迟。由于应用场景的不同,intel的桌面端cpu的延迟要优于服务端cpu,内存效率自然更高。
:
--
FROM 125.35.123.*
不是大佬。俺是学习一下
这有个把内存性能讲得比较透彻的帖子,从南北桥和晶体管开始。虽然有点老,2007的。
What every programmer should know about memory
https://lwn.net/Articles/250967/
有很多mirror
https://people.freebsd.org/~lstewart/articles/cpumemory.pdf
【 在 stub 的大作中提到: 】
: 大佬怎么什么都涉及啊,佩服
--
修改:z16166 FROM 125.35.123.*
FROM 125.35.123.*
nt stream store和ermsb是什么
【 在 KillnCov (KillnCov) 的大作中提到: 】
: 不要怀疑你的测试结果。
--
FROM 101.228.56.*
没有,一直跑没太大变化
【 在 youwill (youwill) 的大作中提到: 】
: 那反过来故意跨numa变慢没有?注意cpu要和内存配合设置的,另外warmup因素有没有影响?
--
FROM 101.228.56.*