以下の実装を使用して、Java オブジェクトのメモリ消費をテストします。
ただし、呼び出し元のメソッドの for ループで i 制限が 384 から 1694 の場合、使用法が104936 Bとして出力されます。上記の i 制限が 384 未満の場合、
使用状況を0Bとして出力します。
どうしてこれなの?
- IDE : 日食ケプラー
- java : 1.5 (これは、Java バージョンも変更された場合に異なる動作をします)
OS: Ubuntu 12.10
public static void main(String[] args) { Runtime runtime = Runtime.getRuntime(); long totalStart = runtime.totalMemory(); long start = runtime.freeMemory(); SampleTester sampleTester = new SampleTester(); sampleTester.callingMethod(); long totalEnd = runtime.totalMemory(); long end = runtime.freeMemory(); System.out.println("Usage [(("+totalEnd+"-"+end+") - ("+totalStart+"-"+start+"))] \t: " + ((totalEnd-end) - (totalStart-start))); } private void callingMethod(){ for(int i = 0; i < 1694; i++){ ArrayList<String> arrayList = new ArrayList<String>(); } }