用什么工具可以找到程序中发生内存泄漏的地方?

解决方案 »

  1.   

    java 的内存泄漏 ?你指的是connection,iostream之类的吗?
      

  2.   

    java的内存回收也不时万能的
    有的时候 加个 x=null; 很必要
      

  3.   

    java的内存泄漏,打个比方:
          你自己写了一个栈(statck)类,它自己维护内存,虽然弹出栈了,可是栈还维护着其引用,所以回造成内存泄漏。
         
           解决办法就是在弹出后 = null即可:消除对过期对象的引用。但是这种问题一般来说都可以判断出来。一个OutOfMemoryError常常是内存泄漏的一个标志,有可能应用程序的确用了太多的内存;这个时候,你既不能增加JVM的堆的数量,也不能改变你的程序而使得他减少内存使用。但是,在大多数情况下,一个OutOfMemoryError是内存泄漏的标志。一个解决办法就是继续监听GC的活动,看看随时间的流逝,内存使用量是否会增加,如果有,程序中一定存在内存泄漏。The JRockit Memory Leak Detector可以供来观察内存泄漏也可以针对性地找到泄漏的原因。这个强大的工具被紧密地集成在JRockit JVM中,可以提供最低可能的内存事务也可以轻松的访问虚拟机的堆。