相关疑难解决方法(0)

32位和64位进程之间的memcpy性能差异

我们有配备XP64的Core2机器(Dell T5400).

我们观察到,当运行32位进程时,memcpy的性能大约为1.2GByte/s; 然而,64位进程中的memcpy达到大约2.2GByte/s(或英特尔编译器CRT的memcpy为2.4GByte/s).虽然最初的反应可能只是解释这个因为64位代码中可用的寄存器更宽,但我们观察到我们自己的类似memcpy的SSE汇编代码(应该使用128位宽的加载存储而不管32位/ 64位过程)表明它实现的复制带宽有类似的上限.

我的问题是,这个差异究竟是由于什么原因造成的?32位进程是否必须通过一些额外的WOW64箍来获取RAM?这与TLB或prefetchers有什么关系还是......什么?

感谢您的任何见解.

也在英特尔论坛上提出.

memory windows cpu 64-bit 32-bit

9
推荐指数
3
解决办法
8592
查看次数

标签 统计

32-bit ×1

64-bit ×1

cpu ×1

memory ×1

windows ×1