2011-06-24 15 views
4

私のプログラムには、停止する必要があるときに私が正確に知ることができないたくさんのメモリが必要な多くの作品がありますが、メモリがほとんど残っていない場合は強制的にリソースの使用を停止できます。私のプログラムで使用できる残りの(バイト単位の)メモリはどれくらいありますか?私のプログラムのメモリはどれくらいありますか?

P/s:プロセスメモリを解放する方法はありません。彼らは可能な限り記憶を必要とし、それはどのように動作するのですか(また古いものはまだ必要なのでコレクターにとってはゴミもありません)。

答えて

9

ような何か試してみてください:あなたはこのブログで詳細を読むことができます

Debug.MemoryInfo memoryInfo = new Debug.MemoryInfo(); 
Debug.getMemoryInfo(memoryInfo); 

String memMessage = String.format("Memory: Pss=%.2f MB, 
    Private=%.2f MB, Shared=%.2f MB", 
    memoryInfo.getTotalPss()/1024.0, 
    memoryInfo.getTotalPrivateDirty()/1024.0, 
    memoryInfo.getTotalSharedDirty()/1024.0); 

http://huenlil.pixnet.net/blog/post/26872625

+0

ありがとう、あなたの答えは非常に非常に詳細ですが、他の有用な情報もあります:) – AndBie

+0

未回答のリストから取り除くには、回答としてマークすることはできますか? – Kenny

+2

それは素晴らしいソリューション@ケニーです。 – yep

1

http://www.javaspecialists.eu/archive/Issue029.html http://www.exampledepot.com/egs/java.lang/GetHeapSize.html

+0

ありがとうございます、2番目のリンクは、迅速な調査に役立ちます。 +1 :) – AndBie

+0

問題はありません申し訳ありませんが、私は何も書いていませんでしたあなたと短くすることを意味しなかった何かは、それらのページが説明することができる以上の詳細を知っていない、面白い問題。 – shaunhusain

0

Androidトラッキングhereで提供されているツールをご覧ください。

1
public static long getCurrentFreeMemoryBytes() { 
    long heapSize = Runtime.getRuntime().totalMemory(); 
    long heapRemaining = Runtime.getRuntime().freeMemory(); 
    long nativeUsage = Debug.getNativeHeapAllocatedSize(); 

    return Runtime.getRuntime().maxMemory() - (heapSize - heapRemaining) - nativeUsage;  
} 

ほとんどの場合、完璧ではありません。

関連する問題