gpt4 book ai didi

java - 在 64 位机器上是否有任何理由仍然使用 int 而不是 long ?

转载 作者:行者123 更新时间:2023-11-30 03:23:39 25 4
gpt4 key购买 nike

一般来说,如果在 64 位架构上进行编程,是否有任何理由在 Java 中仍然使用 int 而不是 long

特别是在我的例子中:

我使用 int 变量映射到 NUMBER 类型的键(从 1 开始的序号,并为每个新条目递增)。在 Oracle DB 表上。

数据库类型 NUMBER 的精度比 int 更高,因此在 Java 端对此进行建模的正确方法是 long

出于效率原因,我坚持使用 int ,而且因为表中可能永远不会有如此多的条目,需要的条目数量多于 int 所能表示的数量。

另一方面,由于大多数现代机器都是 64 位的,因此使用 long 与使用 int 相比,Java 端的效率不会有什么不同>,对吗?我想如果您将大量的键列表加载到内存中,那么内存方面会有所不同,但我们不会执行这种操作。

最佳答案

在 64 位处理器上,由于对齐、寄存器等原因,long 会带来边际性能提升(无论这实际上是否明显是有争议的)。这样做的缺点是需要在堆栈和堆上使用更多空间,这本身可能会对性能产生负面影响。实际上,这取决于您的程序,因为有很多因素可能会影响性能。

我建议使用 int,除非您特别需要 64 位数字。如果您确定您正在为 x86_64 架构进行编程,那么我认为这并不重要,因为无论如何,这些都经过优化以非常有效地处理 32 位程序。

关于java - 在 64 位机器上是否有任何理由仍然使用 int 而不是 long ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30760419/

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