首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在现代项目中使用具有较早语言级别的JAR会带来什么性能影响?

在现代项目中使用具有较早语言级别的JAR会带来什么性能影响?
EN

Stack Overflow用户
提问于 2018-10-30 19:46:28
回答 1查看 44关注 0票数 4

我在一个公司环境中工作,在它的存储库中有几个被广泛使用的、很少更新的Java库。有些库很旧,使用的语言级别可以追溯到JDK1.5 (Java 5)。

几乎所有我们积极开发的Java项目都使用Java 8或更高版本,但它们依赖于一个或多个JDK1.5级JAR。

对于使用具有非常古老的字节码版本的JAR,是否会造成性能上的损失?现代的JIT能够动态更新旧的、低效的字节码吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-30 20:28:32

记住:写一次,到处跑!在你的例子中,这个口号真的很贴切。

通常,如果旧Java代码正在执行它的工作,就没有理由去碰它。

这些年来,字节码没有发生太大变化,Java8 JRE所理解的字节码指令与Java2中已经存在的字节码指令相同99% --几乎没有增加,因此从这个角度来看,没有必要更新旧的字节码。它在Java8下的运行速度将比在Java5下更快,因为具有HotSpot引擎的JRE和类库都有了很大的改进。

类文件格式的更改更多地是关于元数据的,类文件版本号还确保您不会在缺少一半Java8类和方法的Java6 JRE下运行Java6程序。

变化很大的是Java类库和源代码。而且,由于旧库无法知道以后会发生的更改,因此它可能会比使用后期Java版本的所有特性的新编写的版本效率更低。但我的猜测是,重新设计旧图书馆所获得的性能是不值得的。

最后,关于绩效问题的一般性建议:

  • 如果它没有坏,就不要在你知道你的性能有问题之前进行优化。
  • 在优化之前,使用分析器来找出瓶颈所在。相信我,瓶颈很难达到你的预期。
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53071843

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档