Java メモリー使用量を取得
来源:互联网 发布:蓝山酒店管理学院 知乎 编辑:程序博客网 时间:2024/05/24 04:36
原文:http://chat-messenger.net/blog-entry-49.html
Java メモリー使用量を取得 Runtime.getRuntime().totalMemory、freeMemory
Java 仮想マシンのメモリ情報について、「合計」、「使用量」、「使用可能最大」の情報を返します。
各項目の説明は以下となります。
•合計・・・Runtime.getRuntime().totalMemory()で、Java仮想マシンへのメモリ割り当て量になります。
•使用量・・・Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory()になり、 現在メモリに割り当てられたオブジェクトのメモリ使用量です。
•使用可能最大・・・Runtime.getRuntime().maxMemory()で、Java仮想マシンが使用を試みる最大メモリ容量になります。
使用量が合計に近づき、かつガベージコレクションでも空きメモリが確保できない場合、Java仮想マシンは「使用可能最大」まで拡張します。
サンプルプログラム
/**
* Java 仮想マシンのメモリ総容量、使用量、
* 使用を試みる最大メモリ容量の情報を返します。
* @return Java 仮想マシンのメモリ情報
*/
public static String getMemoryInfo() {
DecimalFormat f1 = new DecimalFormat("#,###KB");
DecimalFormat f2 = 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);
String info =
"Java メモリ情報 : 合計=" + f1.format(total) + "、" +
"使用量=" + f1.format(used) + " (" + f2.format(ratio) + "%)、" +
"使用可能最大="+f1.format(max);
return info;
}
実行結果1
◆実行例
public static void main(String[] args) {
System.out.println(getMemoryInfo());
}
◆出力結果
Java メモリ情報 : 合計=1,984KB、使用量=458KB (23.1%)、使用可能最大=65,088KB
実行結果2
◆実行例
Javaヒープサイズを変更して実行してみる。
Javaヒープサイズの値はJavaコマンドのオプションで指定することができます。
java -Xms64m -Xmx512m Main
-Xms初期ヒープサイズ
Java仮想マシンへの初期メモリ割り当て量を指定します。デフォルトは2MBです。
-Xmx最大ヒープサイズ
Java仮想マシンへの最大メモリ割り当て量を指定します。デフォルトは64MBです。
public static void main(String[] args) {
System.out.println(getMemoryInfo());
}
◆出力結果
Java メモリ情報 : 合計=65,088KB、使用量=524KB (0.8%)、使用可能最大=520,256KB
「合計 Runtime.getRuntime().totalMemory()」が-Xmsに、「使用可能最大 Runtime.getRuntime().maxMemory()」が-Xmxにリンクしています。
- Java メモリー使用量を取得
- 取得当前iPhone内存使用量
- 使用Java取得汉字的拼音首字母
- 使用Java取得汉字的拼音首字母
- java 获取非堆内存使用量
- 取得自动增长量(MSSQL)
- 取得手机电池的剩余量
- 使用cgroup限制java使用的内存量-思路
- リクエストパラメータを取得する<bean:parameter>
- 使用java.util.Calendar类取得本周一
- 使用java取得本机的IP地址的方法
- 使用Java取得汉字的拼音首字母(转)
- 使用Java取得汉字的拼音首字母(转)
- 使用java.util.Calendar来取得相关日期信息
- 使用JAVA BufferedReader 类取得输入输入字符串
- Java 理論與實踐: 正確使用 Volatile 變量
- Java提高:推荐使用String直接量赋值
- java获取服务器CPU,内存,硬盘使用量
- Kettle 对hadoop2.4支持的配置
- 新学期(第一周)旱冰场造价
- 经典网页设计:20个新鲜出炉的 HTML5 网站
- 第二周课后实践(1)
- 今天又是一天美好,奋斗吧
- Java メモリー使用量を取得
- 第一周项目四 图书馆的书
- 小明
- 191.Number of 1 Bits
- 第三周项目一 三角形类(1)
- html中的强调的用法
- Android4.x 如何处理Power按键
- 向前一跪
- 第一周项目 0 阅读程序(3)