我编了一个比较小规模的java软件,可是别人用起来,总是一天要程序死掉一次或者二次,但是关闭任务,然后重启就没有问题了,而且每天都是这样,我知道我的垃圾回收可能有问题,但是有没有什么软件可以帮助我最快的找到那个变量没有及时释放而导致了程序很容易死机?

解决方案 »

  1.   

    死机,好可怕哦!
    ide a 5.01 可以有部分代码检测的能力.用用看吧
      

  2.   

    用IBM的Rational系列工具可以方便的查找内存泄漏以及分析效率等,但该软件要收钱的,很贵,
    不过你可以下载一个试用版本用用。purifyplus
      

  3.   

    用yourkit.com的yourkit检测软件,可以得到线程的函数的使用空间情况
    诚意推荐
      

  4.   

    问题找到,我的程序中:
    Class c=new Class();
    c.amethod();
    c.bmethod();
    c.cmethod();
    然后用完后,我没有 c=null;
    难道Java一定要这样做,才能垃圾回收的啊?
      

  5.   

    死机的原因很多,如线程同步死锁,某一进程占有了几乎全部CPU资源,内存耗尽,也就是常说的内存泄漏。像你说的,运行一天会死掉1,2次,有可能是内存泄漏,直到内存耗尽。注意代码中有无相互引用的对象,垃圾回收对这类对象回收比较困难,如果这类对象大量存在地话,比如程序运行一天中,大量创建,而GC又无法回收,则最后造成内存耗尽。