我如何知道我在Java中有漏洞?

我如何知道我在Java中有漏洞?,java,memory-leaks,Java,Memory Leaks,我正在使用Netbeans探查器运行我的应用程序,char类型似乎非常活跃。我看到世代数一直达到180代,然后下降到80代,然后再上升到平均160代 很难说,因为它是一个使用JDBC、Hibernate和连接池的定制TCP/IP服务器应用程序 1-如果发电数量上下波动,可以认为这是正常的吗?只有当它不断上升,从不下降时,才有潜在的问题 2-Netbeans生成图一直在上升。在我的压力测试结束时是20000代人。这张图表是一段时间内的总和吗?我很困惑,因为在查看实时结果时,如上所述,对于char类

我正在使用Netbeans探查器运行我的应用程序,char类型似乎非常活跃。我看到世代数一直达到180代,然后下降到80代,然后再上升到平均160代

很难说,因为它是一个使用JDBC、Hibernate和连接池的定制TCP/IP服务器应用程序

1-如果发电数量上下波动,可以认为这是正常的吗?只有当它不断上升,从不下降时,才有潜在的问题

2-Netbeans生成图一直在上升。在我的压力测试结束时是20000代人。这张图表是一段时间内的总和吗?我很困惑,因为在查看实时结果时,如上所述,对于char类型,世代会上下波动

3-通过从探查器手动调用垃圾收集器,内存似乎会下降。所以我想这也没关系吧

  • 1) 对。它由于所有构造的实例而上升,当垃圾收集器启动时下降
  • 3) 嗯,是的,你是手工做的。不过,这应该没有必要
通过查看随时间变化的最小内存泄漏量,可以识别内存泄漏。每次GC运行时,如果您继续运行相同的代码,它应该几乎相同

如果您输入代码的不同部分,随着类的加载和静态的构建,它可能会有所增长

事实上,如果不知道所采用的代码路径,就很难识别泄漏。我有过一些泄密,直到大约100000条消息被处理后才显现出来,并且在运行了几个星期后才出现问题

另请参见。

  • 1) 对。它由于所有构造的实例而上升,当垃圾收集器启动时下降
  • 3) 嗯,是的,你是手工做的。不过,这应该没有必要
通过查看随时间变化的最小内存泄漏量,可以识别内存泄漏。每次GC运行时,如果您继续运行相同的代码,它应该几乎相同

如果您输入代码的不同部分,随着类的加载和静态的构建,它可能会有所增长

事实上,如果不知道所采用的代码路径,就很难识别泄漏。我有过一些泄密,直到大约100000条消息被处理后才显现出来,并且在运行了几个星期后才出现问题


另请参见。

我通常处理可疑内存泄漏的方法是:

  • 让应用程序在生产环境(而不是IDE)中运行一段时间
  • 触发应用程序编写Java heapdump
  • 使用检查和查找可能的故障点

我通常处理可疑内存泄漏的方式是:

  • 让应用程序在生产环境(而不是IDE)中运行一段时间
  • 触发应用程序编写Java heapdump
  • 使用检查和查找可能的故障点

GC无法清理的内存最终将进入旧一代,然后进入perm空间。这也是.class文件和字符串池所在的位置,因此如果看到它不是空的,请不要惊慌


你必须能够区分泄漏的东西和通常会在烫发空间结束的东西。这并不容易。

GC无法清理的内存最终将进入旧一代,然后进入perm空间。这也是.class文件和字符串池所在的位置,因此如果看到它不是空的,请不要惊慌


你必须能够区分泄漏的东西和通常会在烫发空间结束的东西。这并不容易。

Java处理多种蔬菜,你提到的是长而绿的蔬菜,会导致船只下沉。Java处理多种蔬菜,你提到的是长而绿的蔬菜,会导致船只下沉。