调试Java应用程序中的内存泄漏问题

调试Java应用程序中的内存泄漏问题,java,Java,我对Java非常陌生。我想帮助我们的一个团队处理一个内部银行应用程序。我是能够访问Windows和Linux服务器的服务器支持人员之一。无论如何,java应用程序是在linux上运行的。哪些工具适用于捕获内存泄漏,以帮助确定哪个代码块实际导致内存泄漏?发现很少有像jstat和jmap这样的工具。这些好吗?这在生产中运行安全吗?或者如何调试cpu达到100%的问题?如果要在生产中使用这些工具,生产服务器将需要运行jdk,而不是jre。您的问题是否在本地或开发机器上无法重现?根据他们的说法,它只发生

我对Java非常陌生。我想帮助我们的一个团队处理一个内部银行应用程序。我是能够访问Windows和Linux服务器的服务器支持人员之一。无论如何,java应用程序是在linux上运行的。哪些工具适用于捕获内存泄漏,以帮助确定哪个代码块实际导致内存泄漏?发现很少有像jstat和jmap这样的工具。这些好吗?这在生产中运行安全吗?或者如何调试cpu达到100%的问题?

如果要在生产中使用这些工具,生产服务器将需要运行
jdk
,而不是
jre
。您的问题是否在本地或开发机器上无法重现?根据他们的说法,它只发生在生产中。他们也不知道是什么原因造成的。在使用这些工具之前,我会1)查找总是在泄漏之前发生的用户操作2)查找可能泄漏的资源,例如数据库连接,未正确关闭或返回到池的结果集和语句,或未关闭的文件i/o资源3)查找可能从特定用户输入中获取大量数据的数据结构如果要在生产中使用这些工具,生产服务器将需要运行
jdk
,而不是
jre
。您的问题是否在本地或开发机器上无法重现?根据他们的说法,它只发生在生产中。他们也不知道是什么原因造成的。在使用这些工具之前,我会1)查找总是在泄漏之前发生的用户操作2)查找可能泄漏的资源,例如数据库连接,未关闭或未正确返回到池的结果集和语句,或未关闭的文件i/o资源3)寻找可以从特定用户输入中获取大量数据的数据结构