JAVA查看内存使用情况

一、使用JAVA类库

空闲内存:
Runtime.getRuntime().freeMemory()
总内存:
Runtime.getRuntime().totalMemory()
最大内存:
Runtime.getRuntime().maxMemory()
已占用的内存:
Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory()

例如:

<span style="white-space:pre">	</span>for (int i = 0; i < 100000; i++) {

		for (int j = 0; j < 100000; j++) {
			Object o = new Object();
		}

		System.out.println("总内存:" + Runtime.getRuntime().totalMemory()
				/ 1024 / 1024 + "M");
		System.out.println("空闲内存:" + Runtime.getRuntime().freeMemory()
				/ 1024 / 1024 + "M");
		System.out.println("已使用内存:"
				+ (Runtime.getRuntime().totalMemory() - Runtime
						.getRuntime().freeMemory()) / 1024 / 1024 + "M");
	}



二、jdk自带工具jconsole

转自:http://marshal.iteye.com/blog/138879http://marshal.iteye.com/blog/138879


简介


Jconsole,Java Monitoring and Management Console。

java监控和管理控制台,从java5开始,在JDK中提供。

用于对JVM中内存,线程和类等的监控。

基本配置


本文使用java6,SUN JDK1.6.0_03,使用JDK1.5版本使用略有不同。

本文使用windows XP。

确认jdk的bin目录设置到环境变量Path中。

在命令行中输入:

  1. jconsole  

如果弹出窗口,说明配置可用。

基本使用


这里使用的是本地JVM监控,如果要监控远程的JVM需要另外的配置。

首先,启动需要监控的Java应用程序。

通过任务管理器的进程标签,查看该进程的PID,比如是1388

在命令行启动jconsole:

  1. jconsole 1388  

在启动的界面中:
  1. 概述:有关堆内存使用情况,线程,类加载和CPU使用情况的综述;
  2. 内存:内存的详细情况,堆和其他内存;
  3. 线程:峰值/活动线程,另外,各个线程的明细信息,检测死锁;
  4. 类:监控加载和卸载的类;
  5. vm摘要:有关vm的明细信息
  6. MBean:当前Java程序的MBean(如果有的话)的操作。




具体使用方法查看”帮助“中的”联机用户指南“。



  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值