跟踪java web应用程序内存不足异常



我正在研究一个web应用程序,它读取文件,并给我搜索字符串与行号和其他详细信息,为此,我使用以下技术:

    Spring MVC
  1. DWR反向AJAX

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

每次,我正在做搜索,它显示"内存不足"异常。是否有任何工具可以让我看到代码的哪一部分正在创建问题?

我尝试了jConsole, MAT和其他工具,但所有这些工具看起来都很复杂,因为我是性能测试的新手。

您可以简单地尝试使用jVisualVM,如果您使用的是最新版本的Java,则可以在JDK中使用jVisualVM。(文档)

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

对于大多数低级内存分析/内存泄漏搜索需求来说,它通常足够好。

尽管如此,MAT可能会允许您做完全相同的事情,并且具有类似的复杂性,所以我怀疑您可能需要系好安全带并阅读一两个教程来学习如何使用它。这篇博文很好地介绍了如何分析Java应用程序中的内存泄漏。

当您使用太多RAM时,会抛出OutOfMemoryError。试着找出你存储了大量数据的地方,例如,在一个永远不会被清除的List中。

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

最新更新