32位类型是否可以节省64位系统的内存?

时间:2014-07-08 21:28:40

标签: memory 64-bit storage 32bit-64bit 32-bit

32位类型是否可以节省64位系统的内存? 此外,内存是分为单个字节还是多字节(32/64位)?

我知道处理器将所有数据处理为64位,填入缺失的数据。 那么32位int会减慢计算速度吗?或者int是否仍然存储为64位?

我问,因为我接受过微控制器培训,内存和存储空间有限,我想知道它是否与智能手机和电脑有关。

感谢。

2 个答案:

答案 0 :(得分:0)

大小不是问题,编译器通常会有这个问题。对性能重要的是数据存储的结构。

填充数据结构,以便数据结构和数组的每个数据元素都与64或128位的自然操作数大小对齐。还将数据结构化为64字节段以匹配64和128字节L1高速缓存行大小。英特尔奔腾4,英特尔至强,奔腾M,英特尔酷睿处理器64字节,奔腾4和英特尔至强处理器128字节。

您不希望访问存储在两个不同缓存行中的变量。在例程中使用本地定义的变量而不是全局变量。如果要在较长时间内重复访问全局变量,请将它们复制到本地堆栈上定义的变量。

答案 1 :(得分:0)

除非您拥有庞大的阵列(数百MB或甚至更大的GB),否则在现代系统上使用32位类型时不会节省太多内存。如果你正在进行数学运算(例如加密算法),那么使用64位整数运算可以提高性能。