我用awt写了一个号码处理工具,运行时处理号码量大,报内存溢出,我想问下怎么修改jvm的内存!我知道在环境变量可修改内存的大小,但是这种方法治标不治本,如果将这个号码工具,在别的电脑上运行也会报内存溢出,我想问下有什么方法可以解决这个问题啊!

解决方案 »

  1.   

    -Xms64m -Xmx800m
    运行java时设置参数最小内存64m,最大内存800m。
      

  2.   

    不要设置环境变量
    直接java -Xms128m -Xmx1024m 运行入口,将这个放到一个批处理文件(bat)里就可以了出现内存溢出最好是优化下你的代码,让它使用完能够释放资源,而不是一味的装载,不然给你10个G的内存也不够你用。
      

  3.   

    java.lang.System.gc()
    可以申请垃圾回收机进行垃圾回收。在可能会出现大量闲置对象时(例如在某个会产生大量局部对象的循环结束后)申请回收可以有效的提高内存的使用效率。要注意的是:与C#中的申请回收GC.Collect()不同,System.gc()并不是强制进行垃圾回收,仅是向回收机提出回收申请,回收机一般不会马上进行回收。因此优化代码才是最根本的解决之道。