【问题标题】:Track out of memory exception in java web application在 Java Web 应用程序中跟踪内存不足异常
【发布时间】:2014-08-08 16:47:15
【问题描述】:

我正在开发一个 Web 应用程序,它读取文件并为我提供带有行号和其他详细信息的搜索字符串,为此,我正在使用以下技术:

  1. Spring MVC
  2. DWR 反向 AJAX

FTP 和共享位置文件,我正在使用这个应用程序阅读。

每次,我都在搜索,它显示“内存不足”异常。是否有任何可用的工具可以让我查看代码的哪一部分正在产生问题?

我尝试了 jConsole、MAT 和其他工具,但由于我是性能测试新手,所以看起来都很复杂。

【问题讨论】:

    标签: java spring out-of-memory performance-testing dwr


    【解决方案1】:

    您可以简单地尝试使用 jVisualVM,如果您使用的是最新版本的 Java,您的 JDK 就可以使用它。 (docs)

    它将使您能够挂钩到正在运行的进程,包括您的本地应用程序服务器,并生成堆转储以检查正在加热您的内存的原因。

    它通常足以满足大多数低级内存分析/内存泄漏搜索要求。

    尽管如此,MAT 可能允许您做完全相同的事情并且具有相似的复杂性,所以我怀疑您可能必须系好安全带并阅读一两个关于如何使用它的教程。这篇博文对analyzing memory leaks in a Java applicationjVisualVM 做了一个不错的介绍。

    【讨论】:

    • +1 使用表达式:I suspect you might have to buckle up and read a tutorial or two
    【解决方案2】:

    当您使用的 RAM 过多时,会抛出 OutOfMemoryError。尝试找出您存储大量数据的位置,例如在一个永远不会被清除的列表中。

    如果找不到错误,请创建堆转储。然后,打开它,看看是什么让你记忆犹新。一个很棒的教程在这里: https://blog.codecentric.de/2011/08/java-heapdumps-erzeugen-und-verstehen-4-akt/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-09-15
      • 1970-01-01
      • 2010-12-21
      • 1970-01-01
      • 2015-10-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多