如题,用法很简单,就是开了10个进程,每个进程3个线程,每个线程每两秒的发一次arp和icmp包,开了5天.第二天42m,第三天62m,第五天92m,启动的命令行如下:
       java -Xms16m -Xmx32m -Xss1m -Xoss1m ...       用JProfiler看过,heap的最大值没超出过16M,并且很有规律的在回收.但是任务管理器中显示的内存在很慢的涨.弄过的朋友请帮忙看看是怎么回事,谢谢!

解决方案 »

  1.   

    要看你的程序,可能资源没有释放。就是有些资源,你始终没有把所有的引用都置空。java对于被引用的数据,是不会回收的!
      

  2.   

    lz可能有资源没有释放,可能对HashMap或流的处理不够得当,看看有没有流没有关闭的
      

  3.   

    首先检查一下程序中的资源释放问题
    再有就是GC并不是随时都会执行, 只有在GC认为你分配给虚拟机的内存快用完了, 这时GC才保证会执行, 其他时候都不一定, 有可能执行, 也有可能不执行. 如果程序中资源释放有问题, 那么早晚你的程序都会当机, 如果没有问题, 就算你看到内存在增长, 但是不用担, 什么问题也没有, 当机的情况几乎是不会发生的.