为了解决3G(Ubuntu)内存问题(有时我们确实需要比3G更多的内存),我在64位环境下编译我的应用程序以使用更多内存。
但是,我的64位应用程序比32位版本慢得多。
<32> 32位版本基于32位机器; 64位版本是在64位机器上构建的; 在我们的加载测试中,32Bit和64Bit版本都在64Bit机器上运行。我用谷歌搜索,有些人说,不必要的long
类型可以使64位比32位慢,因为:
man g++:
-m64
Generate code for a 32-bit or 64-bit environment. The 32-bit environment
sets int, long and pointer to 32 bits and generates code that runs on any
i386 system. The 64-bit environment sets int to 32 bits and long and
pointer to 64 bits and generates code for AMD's x86-64 architecture. For
darwin only the -m64 option turns off the -fno-pic and -mdynamic-no-pic
options.
所以我将所有long
更改为int
s,但结果仍然相同。
请告知。
彼得
编辑: