gpt4 book ai didi

java - 拳击会导致性能问题吗?

转载 作者:搜寻专家 更新时间:2023-10-31 08:28:55 26 4
gpt4 key购买 nike

我正在做一个项目,在这个项目中我们正在生成一种编译为 java 的语言。我们使用的框架 (xtext) 在其生成的代码中大量使用装箱。具体来说,如果您有如下声明:

int i = 1;
int j = 2;
int k = i + j;

编译后的代码如下:

IntegerExtensions.operator_plus(((Integer)i), ((Integer)j))

现在,在我正在从事的项目中,在某些情况下,特定的基本二进制操作将非常常见(尤其是递增和比较)。

我的问题是:这会成为性能方面的问题,还是 JIT(或类似的智能 JVM 功能)会简单地意识到发生了什么并修复所有问题?

请在发帖前阅读:我对收到“你不应该关心,让它可读”这样的回复不感兴趣。这段代码是生成的,我根本不关心生成代码的可读性。我关心的是我们不会因此而受到重大的性能影响。

谢谢

最佳答案

这实际上会产生影响。当转换为 Integer 时,它将使用 Integer.valueOf(int n) 方法将 int 转换为 Integer .此方法将检查该值是否在缓存范围内(-128 到 127),如果不在,它将创建 new Integer(n)

影响的大小可大可小,您必须自己测试。

关于java - 拳击会导致性能问题吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8468266/

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