Performance 大型portlet war占用内存导致性能问题?
我听过一些人说,部署包含大量大型JAR的portlet war文件(或者任何war)可能会导致性能问题,因为所有这些JAR都会加载到内存中。如果您有几场战争,所有这些战争都包括大量的大型jar文件,那么您的系统将陷入困境Performance 大型portlet war占用内存导致性能问题?,performance,memory,tomcat,portlet,Performance,Memory,Tomcat,Portlet,我听过一些人说,部署包含大量大型JAR的portlet war文件(或者任何war)可能会导致性能问题,因为所有这些JAR都会加载到内存中。如果您有几场战争,所有这些战争都包括大量的大型jar文件,那么您的系统将陷入困境 我正试图弄明白为什么这是真的,但我还没有找到任何可以解释这一点的方法。也许我在寻找错误的术语,这就是为什么我找不到太多信息的原因。有人能解释一下当一个portlet被实例化时到底发生了什么,以及这些jar是否真的开始占用内存吗 简短的回答是:是的,部署包含大量JAR的war文件
我正试图弄明白为什么这是真的,但我还没有找到任何可以解释这一点的方法。也许我在寻找错误的术语,这就是为什么我找不到太多信息的原因。有人能解释一下当一个portlet被实例化时到底发生了什么,以及这些jar是否真的开始占用内存吗 简短的回答是:是的,部署包含大量JAR的war文件“可能”导致性能问题。war是否包含portlet或标准web应用程序并不重要。 但在我看来,你不应该过早地担心这个问题,因为这个问题有简单的解决办法 当portlet或任何webApp加载到服务器时,它会将主jar的类加载到web服务器堆(分配给Java进程的内存)的“永久生成”区域。此区域存储执行的代码。当这些类使用来自其他JAR的代码时,它们的代码也会加载到此区域。 如果此区域已填充,您将获得OutOfMemoryError异常 您的问题的解决方案很简单: