新的起点 新的开始
快乐生活 !
通过Runtime获取当前JVM使用的Heap大小
一提起如何解决内存溢出问题,动辄使用复杂的监控软件,比如Jprofile等,其实我们可以通过Runtime来获得当前Heap大小,使用Heap大小。测试如下:
1. 设置JVM属性: -Xms64m -Xmx256m 最小64M 最大使用256M.
2. 运行如下代码:
public
static
void
main(String [] args)
throws
Exception
{
int
mb
=
1024
*
1024
;
//
Getting the runtime reference from system
Runtime runtime
=
Runtime.getRuntime();
System.out.println(
"
##### Heap utilization statistics [MB] #####
"
);
//
use memory
List testList
=
new
ArrayList();
for
(
int
i
=
0
; i
<
5000
;i
++
)
{
Thread.sleep(
1000
);
for
(
int
i1
=
0
; i1
<
5000
; i1
++
)
{
testList.add(
new
String[
1000
]);
}
System.out.println(
"
Used Memory:
"
+
(runtime.totalMemory()
-
runtime.freeMemory())
/
mb
+
"
M
"
);
}
System.out.println(
"
Free Memory:
"
+
runtime.freeMemory()
/
mb
+
"
M
"
);
System.out.println(
"
Total Memory:
"
+
runtime.totalMemory()
/
mb
+
"
M
"
);
System.out.println(
"
Max Memory:
"
+
runtime.maxMemory()
/
mb
+
"
M
"
);
}
}
运行结果如下:
##### Heap utilization statistics [MB] #####
Used Memory:19M
Used Memory:38M
Used Memory:57M
Used Memory:77M
Used Memory:96M
Used Memory:115M
Used Memory:134M
Used Memory:154M
Used Memory:173M
Used Memory:192M
Used Memory:211M
Used Memory:230M
Used Memory:249M
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
at prepare.NewClass.main(NewClass.java:32)
Java Result: 1
成功生成(总时间:15 秒)
posted on 2009-05-20 21:58
advincenting
阅读(285)
评论(0)
编辑
收藏
新用户注册
刷新评论列表
只有注册用户
登录
后才能发表评论。
网站导航:
博客园
IT新闻
Chat2DB
C++博客
博问
管理
公告
导航
BlogJava
首页
新随笔
联系
聚合
管理
<
2009年5月
>
日
一
二
三
四
五
六
26
27
28
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
统计
随笔 - 184
文章 - 13
评论 - 226
引用 - 0
常用链接
我的随笔
我的评论
我的参与
最新评论
留言簿
(13)
给我留言
查看公开留言
查看私人留言
随笔分类
(71)
English
(rss)
java EE(8)
(rss)
JSF/ADF(3)
(rss)
Linux 相关(5)
(rss)
Mobile(3)
(rss)
OO设计(4)
(rss)
数据库相关(11)
(rss)
服务器 比如:WebLogic(Develop+Deploy)(4)
(rss)
生活随笔(25)
(rss)
脚本(8)
(rss)
随笔档案
(179)
2013年11月 (1)
2012年12月 (2)
2012年11月 (4)
2012年10月 (1)
2012年9月 (2)
2012年8月 (2)
2012年7月 (5)
2011年11月 (1)
2010年4月 (3)
2010年2月 (2)
2010年1月 (4)
2009年12月 (1)
2009年11月 (1)
2009年10月 (1)
2009年8月 (8)
2009年7月 (10)
2009年6月 (1)
2009年5月 (6)
2009年4月 (16)
2009年3月 (3)
2009年2月 (1)
2008年9月 (4)
2008年8月 (5)
2008年7月 (5)
2007年12月 (7)
2007年11月 (8)
2007年10月 (4)
2007年9月 (9)
2007年8月 (2)
2007年7月 (5)
2007年6月 (2)
2007年5月 (3)
2007年4月 (23)
2007年3月 (27)
文章档案
(13)
2007年7月 (5)
2007年6月 (2)
2007年5月 (1)
2007年4月 (1)
2007年3月 (4)
新闻分类
军事
(rss)
娱乐
(rss)
政策
(rss)
科技
(rss)
IT人的英语学习网站
JAVA 实例
JAVA API
JAVA站点
BEA
IBM DeveloperWorks
JAVA WORLD
优秀个人博客链接
官网学习站点
生活工作站点
最新随笔
1. JQuery Select 操作
2. java 性能调优之-快速定位引起内存泄露的代码
3. java 性能调优之-快速定位消耗CPU的Java线程
4. 在Oracle 11g中安装Demo 数据库
5. 在Weblogic上创建ADF运行的Domain
6. developer 眼中的性能问题
7. 在ADF中跟踪SQL执行时间
8. ADF 发布Android IOS 开发平台
9. ADF 介绍
10. 列转行 聚合的简单实现 ORACLE WM_CONCAT LISTAGG 函数
搜索
积分与排名
积分 - 335706
排名 - 165
最新评论
1. re: FireBug 调试JS入门 —如何调试JS
@ZengJerry
同感
--舒健
2. re: Java异常框架设计
评论内容较长,点击标题查看
--zuidaima
3. re: JQuery Select 操作
000
--12我
4. re: JQuery Select 操作
11111111111111
--12我
5. re: under the hood 中文意思
评论内容较长,点击标题查看
--leifeng
阅读排行榜
1. FireBug 调试JS入门 —如何调试JS(54047)
2. 深入浅出Java多线程(1)-方法 join(27483)
3. 通过ClassLoader说明容器热部署实现机制(11465)
4. 深入浅出多线程(4)对CachedThreadPool OutOfMemoryError问题的一些想法(7896)
5. under the hood 中文意思(7631)
评论排行榜
1. FireBug 调试JS入门 —如何调试JS(19)
2. 深入浅出Java多线程(1)-方法 join(13)
3. JDK1.6 集合类 UML 图, 更好的使用Collection类(11)
4. 请正则表达式高手给出更好的解决方案(11)
5. JavaBean之间拷贝利器-Dozer 如果现在还是原始的手动拷贝或者使用BeanUtil 赶紧换吧(10)