当前位置: 首页 > 面试题库 >

拳击会引起性能问题吗?

浦思源
2023-03-14
问题内容

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

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

然后,编译后的代码如下所示:

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

现在,在我正在研究的项目中,在某些情况下,特定的基本二进制运算将变得极为常见(尤其是增量和比较)。

我的问题是:这会在性能方面成为问题,还是JIT(或类似的智能JVM功能)会简单地了解正在发生的事情并修复所有问题?

请在发布之前阅读:我对获得答复说“您不关心,使其可读”不感兴趣。这段代码是生成的,我根本不在乎生成的代码的可读性。我关心的是,我们不会因此受到重大的性能影响。

谢谢


问题答案:

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

影响的程度可能很大,也可能很小,您必须进行自我测试。



 类似资料:
  • 本文向大家介绍PHP中Session可能会引起并发问题,包括了PHP中Session可能会引起并发问题的使用技巧和注意事项,需要的朋友参考一下 在进行Web应用程序开发的时候,人们经常会用Session存储数据。但可能有人不知道,在PHP中,Session使用不当可能会引起并发问题。印度医疗行业软件解决方案提供商Plus91 Technologies高级工程师Kishan Gor在个人博客上对这个

  • 我想将JavaFX应用程序迁移到JDK11&OpenJFX,但我注意到SwingNode会引起问题。我决定创建一个新的项目,看看是怎么回事。有趣的是,当我切换到JDK8时,一切都很好。在较新的版本中,会出现错误。我不知道是因为什么。 VM选项:--module-path${PATH_TO_FX}--add-modules=javafx.controls,javafx.fxml

  • 问题内容: 我正在使用带注释的应用程序上下文()调用测试方法(Junit )。测试失败,并显示以下堆栈跟踪: 我认为问题是缺少方法()。我不确定如何正确读取行,加括号的圆括号使我感到困惑。我在applicationContext.xml和不同的Spring版本中尝试了不同的bean版本。 这是我的applicationContext: 问题答案: 我刚刚在Spring 4.1.1.RELEASE,

  • 那么,换句话说,为什么编译器不能在第二个方法中执行自动装箱呢?是因为在第二个方法中,绑定不是显式的,而在第一个方法中绑定是明确的。

  • 问题内容: 我在Java2D方面表现有些古怪。我知道sun.java2d.opengl VM参数可以为2D启用3D加速,但是即使使用该参数也有一些奇怪的问题。 这是我运行的测试结果: 在JComponent上绘制具有32x32像素图块的25x18地图, 图像1 = .bmp格式,图像2 = .png格式 没有-Dsun.java2d.opengl = true 使用.BMP图像1的120 FPS使

  • 最近,我们将数据库从11g更新为19c。 在新数据库版本中测试应用程序时,我们遇到了一个特定视图的性能问题,该视图工作得非常好,但在19c中会导致性能问题。 在分析计划时,我们看到执行计划发生了巨大变化,这导致了19c中视图的性能非常差。 令人惊讶的是,其他观点的效果很好。 如果你能对这个问题有所了解,那就太好了。 谢谢你,JD