gpt4 book ai didi

java - 每次部署都会增加加载类的数量

转载 作者:行者123 更新时间:2023-12-01 14:32:33 25 4
gpt4 key购买 nike

我在 websphere 7 中部署的应用程序遇到内存不足问题。

我正在使用 yourKit 来尝试弄清楚发生了什么,我看到的一件有趣的事情是,当我第一次启动我的应用程序时,它会加载大约 20k 类,并且每次我进行另一次部署时(在不重新启动 websphere 的情况下)此数字增加 2k,堆大小也随之增加。

我猜这是根本问题,但我不知道如何解释为什么会发生这种情况。

我尝试在一个部署之前和另一个部署之后列出所有类,但这效果不是很好,因为我无法列出所有 20k 类(只有 10k 不知道为什么)。当我比较这两个列表时,我发现大约 600 个新类确实来 self 的应用程序或来 self 的应用程序的依赖项。

我发现我的大多数应用程序类都是 Enum 和 DAO 类的实现。

我的应用程序是使用 Struts 和 Spring 框架的 Java EE 6 应用程序。

有什么想法吗?

最佳答案

OutOfMemoryError 可能在 JVM 的堆空间或 permGen 空间已满时引起。

如果您遇到的问题是由应用程序的重新部署引起的,那么您很可能遇到了 PermGen OOME。当应用程序服务器无法从其内存中完全卸载类的定义时(内存泄漏),就会发生这种情况。

这种情况很常见(至少从我的经验来看),通常开发人员只是增加应用程序服务器的 PermGen 大小,或者只是弹跳应用程序服务器来清理 PermGen。

关于java - 每次部署都会增加加载类的数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16753237/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com