忽略内存消耗,使用`int`或`char`会有所不同吗?

时间:2014-02-16 22:29:46

标签: c++

如果我使用intchar,是否会产生性能差异?我的猜测是否定的,因为两者都通过并行总线传输到ALU。因此,根据体系结构,任何基本整数之间都没有区别,无论是int8_tint16_t还是int32_t,只要它们处于系统的位置(32,64,等等...)。我不完全确定。这是真的吗?

1 个答案:

答案 0 :(得分:1)

如果您正在考虑一个变量,那么(原生大小)整数代码将始终执行至少同样快,因为不必执行任何掩码或对齐。但是,如果考虑数组(或其他密集的变量集),那么更多较小的变量将适合缓存行并且随时可供核心使用。缓存未命中会增加显着的延迟,这使得操作核心中本机大小的单词的效率提高相形见绌。