如果我使用int
或char
,是否会产生性能差异?我的猜测是否定的,因为两者都通过并行总线传输到ALU。因此,根据体系结构,任何基本整数之间都没有区别,无论是int8_t
,int16_t
还是int32_t
,只要它们处于系统的位置(32,64,等等...)。我不完全确定。这是真的吗?
答案 0 :(得分:1)
如果您正在考虑一个变量,那么(原生大小)整数代码将始终执行至少同样快,因为不必执行任何掩码或对齐。但是,如果考虑数组(或其他密集的变量集),那么更多较小的变量将适合缓存行并且随时可供核心使用。缓存未命中会增加显着的延迟,这使得操作核心中本机大小的单词的效率提高相形见绌。