gpt4 book ai didi

architecture - 在 32 位 CPU 上, 'integer' 类型是否比 'short' 类型更高效?

转载 作者:行者123 更新时间:2023-12-03 01:34:16 26 4
gpt4 key购买 nike

在32位CPU上,整数为4字节,短整数为2字节。如果我正在编写一个使用许多始终符合所提供的短整数范围的数值的 C/C++ 应用程序,那么使用 4 字节整数还是 2 字节整数更有效?

我听说 4 字节整数效率更高,因为这适合从内存到 CPU 的总线带宽。但是,如果我将两个短整数相加,CPU 是否会将两个值并行打包在一次传递中(从而跨越总线的 4 字节带宽)?

最佳答案

如果您有大量数字,请使用有效的最小尺寸。使用 16 位短整型数组比使用 32 位整型数组效率更高,因为您可以获得两倍的缓存密度。与缓存未命中的成本相比,CPU 为处理 32 位寄存器中的 16 位值而必须进行的任何符号扩展的成本都可以忽略不计。

如果您只是在与其他数据类型混合的类中使用成员变量,那么情况就不那么明确了,因为填充要求可能会消除 16 位值节省空间的优势。

关于architecture - 在 32 位 CPU 上, 'integer' 类型是否比 'short' 类型更高效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/163254/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com