Java メモリー使用量を取得する方法
デバックやシステムの最適化などの作業では、メモリの情報が重要になることがあります。
Java 仮想マシンのメモリ情報について、得られる情報は次のようになります。
合計 | Runtime.getRuntime().totalMemory() |
Java仮想マシンへの割り当てメモリ | |
使用量 | Runtime.getRuntime().freeMemory() |
割り当てられたオブジェクトの空きメモリ | |
使用量 | Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory() |
現在メモリに割り当てられたオブジェクトのメモリ使用量 | |
使用可能最大 | Runtime.getRuntime().maxMemory() |
Java仮想マシンが使用を試みる最大メモリ容量 |
スポンサーリンク
使用量が合計に近づき、かつガベージコレクションでも空きメモリが確保できない場合、Java仮想マシンは「使用可能最大」までメモリを拡張します。
サンプルコード
private final static String TAG = "Memory Infomation"; public static String getMemoryInfo() { String info = ""; DecimalFormat format_mem = new DecimalFormat("#,###KB"); DecimalFormat format_ratio = new DecimalFormat("##.#"); long free = Runtime.getRuntime().freeMemory() / 1024; long total = Runtime.getRuntime().totalMemory() / 1024; long max = Runtime.getRuntime().maxMemory() / 1024; long used = total - free; double ratio = (used * 100 / (double)total); info += "Total = " + format_mem.format(total); info += "\n"; info += "Free = " + format_mem.format(total); info += "\n"; info += "use = " + format_mem.format(used) + " (" + format_ratio.format(ratio) + "%)"; info += "\n"; info += "can use = " + format_mem.format(max); return info; } public static void viewMemoryInfo() { Log.d(TAG,"---------- MemoryInfo --------"); Log.d(TAG,getMemoryInfo()); Log.d(TAG,"------------------------------"); }
関連記事
- 文字列の置き換えを行う方法 (replaceAllで気をつけること)
- 文字列の部分一致検索を行う方法
- 実行中のメソッド名やクラス名を取得する方法
- Singletonパターンを使ってクラスのインスタンスを1つにする(共有クラスのリソースを削減する方法)
- ファイルのテキストデータを読み込む
- テキストデータをファイルに書き込む BufferedWriterの使用例
- Webからダウンロードして保存する DefaultHttpClientの使用例
- ファイルをコピーする InputStream,OutputStreamの使用例
- 暗号化・複合化を行う ブロック暗号
- base64変換の一覧とその詳細サンプルコード
- 型変換の一覧(キャスト)
- 処理を一定時間停止させる方法
- ファイルの拡張子を取得する
- サンプルコード
- Androidアプリ
- Java
- Mobile Network Code(MNC)の一覧[J-L]
- ==とequalsメソッドの違い 値が同じかどうかを見るにはequalsメソッドを使う
- 処理中を表すプログレスダイアログを表示する
- アプリからネットワーク通信を行う場合
- SDカードが接続されているかどうか知る方法 書き込み可能かどうか 読み込み可能かどうか
- アプリ起動時にスプラッシュ画面を表示させる方法
- コマンドプロンプトの文字コードを変える方法
- 画像を解像度ごとに振り分ける方法 国際化する方法(drawable、layout、valuesなどの修飾句)
- 「ID」や「ID_xxxx」という文字列があるCSVファイルをExcelで開くとSYLKエラーが出る
- WebViewを使ってWebサイトを表示する方法 WebKitからアプリ、アプリからWebKitへの連携処理
- ログの出力 アプリのステータスを確認する
- Mobile Network Code(MNC)の一覧[T-U]
- 画面解像度などディスプレイの情報を取得する方法
- 動画を再生する方法 VideoView
- Colorクラスでの色指定
- SDカードの空き容量を調べる方法
- Mobile Network Code(MNC)の一覧[O-R]
スポンサーリンク