[英]Is it ok to use 64bit integers in a 32bit application?
我注意到在C和C ++中,我们可以使用int64_t
,或者只是long long
。
如果我使用这些类型编译32位代码 ,我会在64位和/或32位机器上遇到任何性能问题吗?
除了节省一些RAM,我还有理由只使用int
吗?
毕竟,64位整数在存储大数字时更有用。
如果我使用这些类型编译32位代码,我会在64位和/或32位机器上遇到任何性能问题吗?
您的编译器可能需要生成多个机器代码指令以对64位值执行操作,从而将这些操作减慢几次。 如果这可能是一个问题,您需要进行一些基准测试,以评估使用实际数据对特定程序的影响。 存在于32或64位计算机上执行32位可执行文件的问题。
我有理由只使用
int
吗?
除了性能和内存使用之外,偶尔也有理由使用int
因为您使用的其他API /流等使用int
。 如果明显足够的话,使用int
也会有微妙的文件价值,否则其他程序员可能会浪费时间,想知道为什么你不想long long
使用它。
毕竟,64位整数在存储大数字时更有用。
存储非常大的数字更有用 - 当然 - 但这是相对很少需要的。 如果你存储的东西像一年或某个人的年龄,那么64位就没有特别的意义了。
如果我使用这些类型编译32位代码,我会在64位和/或32位机器上遇到任何性能问题吗?
32位架构上的64位整数需要两个寄存器来存储值*。 32位值只需要一个寄存器。 这很重要,因为:
最重要的是,如果32位性能很重要,除非你需要它们,否则不要使用64位整数
*适用于x86,ARM和PowerPC处理器,这些处理器涵盖了目前人们编程的大多数处理器。 大多数其他处理器也可能是这样。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.