如何优化java内存

时间:2015-12-03 03:03:51

标签: java memory optimization

我写了一个java服务器,它需要太多的内存来优化它。我分析程序,它只扫描一些数据,然后解析它并将其写入文件。它需要大约2GB的RES,但我可以测量真实数据,它应该是300MB。所以我使用JProfiler来优化程序。我发现它可以释放大约0.6GB的内存。起初我建议也许arraylist应该使用ensureCapacity并且是一个类成员以避免过多的新操作。我使用以下代码进行测试,令人惊讶的是它也一直释放大约40MB enter image description here。那么如果想最大限度地减少内存使用量,我该怎么办?

import java.util.ArrayList;

public class ArrayListTest {

  public static void main(String[] args) {
    // TODO Auto-generated method stub

    ArrayList<Integer> t = new ArrayList<Integer>(100);
    while (true) {

    // System.out.println(t.size());

    for (int i = 0; i < 100; ++i) {
      t.add(i);
    }    
    // System.out.println(t.size());

    t.clear();
    // System.out.println(t.size());
  }
  }
}

0 个答案:

没有答案