gpt4 book ai didi

java - 频繁的垃圾收集java web应用程序

转载 作者:行者123 更新时间:2023-11-30 09:54:02 24 4
gpt4 key购买 nike

我有一个网络应用程序,它根据用户请求将 java bean 序列化为 xml 或 json。

当我对其施加一点负载时,我遇到了一个令人费解的问题,它很快就用完了所有分配的内存,并达到了最大容量。然后我观察到完整的 GC 每 20-40 秒就非常努力地工作。

看起来不像是内存泄漏问题...但我不太确定如何解决这个问题?

序列化为 xml/json 的 bean 具有对其他 bean 的引用以及对其他 bean 的引用。我使用 json-lib 和 jaxb 来序列化 bean。

yourkit 内存分析器告诉我 char[] 是最消耗内存的 Activity 对象...

感谢任何见解。

最佳答案

有两种可能性:您有内存泄漏,或者您的 web 应用程序只是生成大量垃圾。

  • 判断您是否有内存泄漏的蛮力方法是长时间运行它,看看它是否因 OOME 而失败。或者打开 GC 日志记录,看看垃圾回收后剩余的平均空间是否随着时间的推移持续上升。

  • 无论是否存在内存泄漏,您都可以通过增加最大堆大小来提高性能(减少 GC 时间百分比)。你的 webapp 看到很多完整的 GC 的事实向我表明它需要更多的堆。 (如果您有内存泄漏,这只是一个创可贴解决方案。)

  • 如果事实证明您没有遭受内存泄漏,那么您应该看看为什么您的应用程序会产生如此多的垃圾。这可能取决于您执行 XML 和 JSON 序列化的方式。

关于java - 频繁的垃圾收集java web应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3561412/

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