Java EE开发中的性能(编译、构建、加载、内存加载)


performance (compilation, build, load, memory load) in the Java EE developement

我想问一个一直困扰我的问题

在php开发中:项目的调试和构建只需按ctrl + s -> F5

,但在Java EE项目的情况下(特别是当我使用Java框架,如jsf spring ....)对托管bean(如果是JSF)或java bean类进行简单更改……我必须等待上下文的加载.....

我花了很长时间,尽管事实上,PC是足够强大的它偶尔会造成内存过载

=>这大大降低了工作效率和积极性

(我不认为大多数开发人员会抵制它)

这个问题没有解决办法吗?

谢谢

PHP

保存文件。PHP以文件为源启动,它解释内容,构建op代码,执行,得到结果。PHP停止。

Java EE

保存文件。编译项目(对一个文件的更改可能会更改其他类文件)。您还可以启动应用程序服务器(开销较大)或执行上下文重新加载(开销较小)。这就像在每次修改PHP文件后重新启动Apache一样。您保持应用程序服务器运行,因此后续请求将很快。

但为什么这么麻烦?Java需要重新加载应用程序,因为它不解释每个请求上的每个类文件(像PHP那样),所以当发生更改时需要重新加载整个应用程序。另一个原因是JVM是一个高度优化的野兽,要获得出色的性能,您不可能有快速的周转(优化本质上需要时间)。想象一下运行PHP时启用OP缓存,并为每次PHP文件更改预热。

对于小型应用程序,Java EE中的重新加载是相当便宜的,但一旦应用程序增长,情况就会变得更糟。一旦你使用了几个框架,那么应用程序上下文重载也会触发这些框架的初始化。

如果你想要PHP那样的开发经验,那么有一个商业工具,JRebel可用。此工具将从更改的类文件中重新加载新的字节码,而不是执行上下文重新加载。