JVM JIT编译器如何优化“重复的” Java代码?

雷南·莫桑(Renan Mozone):

我负责维护在IBM WebSphere 6.1(IBM J9 JVM)上运行的基于JSP的应用程序。所有JSP页面都有一个静态包含引用,并且在此包含文件中声明了一些静态Java方法。它们包含在所有JSP页面中,以提供对这些实用程序静态方法的“轻松访问”。我知道这是一种非常糟糕的工作方式,并且我正在努力改变这一点。但是,仅出于好奇,并为了支持我的工作,我想知道JVM JIT编译器如何优化这些“重复的”静态方法。

  • 它们即使具有完全相同的签名也分别进行了优化?
  • JVM JIT编译器是否“看到”这些方法都是相同的,并提供了“统一的” JIT代码?
mdma:

每个JSP页面都被编译成一个唯一的类,因此所包含的代码也将被编译成不同的类。JIT不会将代码的各种副本合并为一个。

为了避免这种情况,可以将导入的代码放入真实的Java类中,然后将其导入JSP中。这样就不会重复,因为您正在重用同一类。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

JVM编译时间与代码缓存

jvm如何优化循环代码?

从Java代码转换为jvm字节代码会被视为编译或编译?

即时编译器如何优化Java并行流?

如果JVM确实很简单而没有取消优化,那么JVM可以对JIT编译的代码执行自适应优化吗?

Java编译器和JVM用哪种语言编写?

如何在JVM中查看JIT编译的代码?

JVM为什么不缓存JIT编译代码?

兼容的Java编译器可以优化此代码吗?

如何禁用编译器和JVM优化?

JVM的JIT编译器是否生成使用矢量化浮点指令的代码?

Java何时获得JIT编译器?

如何编写(测试)编译器/ JIT无法优化的代码?

Android中的Java代码编译器优化

在有效Java的这段示例代码中,如何防止JVM“优化所有内容”?

JVM中的JIT编译器到底是什么?

Java和C ++中for循环的边界检查的编译器/ JIT优化

Java的编译器和解释器(JVM)

我如何“告诉” C编译器不应优化代码?

编译器如何优化这段代码

C2 JIT编译器何时触发Java循环预测优化?

仅在发布版本中运行C#代码失败(可能是由于JIT编译器优化)

JVM解释器(不是JIT编译器)实际上做什么?

JIT编译器生成的代码如何与程序链接?

Java中只允许在代码中保留分号。幕后发生了什么?编译器和JVM如何对待它们?

Java JIT编译器优化-在可变变量值缓存方面JIT是否一致?

如何在jvm上运行生成的frege Java代码?

如何调试在本机代码创建的 JVM 中运行的 Java 代码?

Java 的 JIT 编译器如何使坏代码比好的代码更快?