请问用Java代码,怎样测试一段程序占用了多少内存?

比如说有个下载pdf的功能,我要测试一下下载pdf这个功能到底占用多少内存,用程序代码怎样测试?组长给我的想法是,要对下载pdf功能进行内存监控,如果即将内存溢出则跳转到... 比如说有个下载pdf的功能,我要测试一下下载pdf这个功能到底占用多少内存,用程序代码怎样测试?组长给我的想法是,要对下载pdf功能进行内存监控,如果即将内存溢出则跳转到错误页面。 展开
 我来答
FYu0obdo0
推荐于2018-04-21 · 超过14用户采纳过TA的回答
知道答主
回答量:37
采纳率:0%
帮助的人:0
展开全部
你可以先用内存监控工具,进行监控,看看这个功能到底用多少内存。如果不多,其实都不需要实现你说的代码监控的。如果你要使用代码监控,你可是使用Runtime类的几个属性,MaxMemory、FreeMemory、TotalMemory。然后实现个线程,在下载pdf功能前开启线程,然后完毕时关闭线程,如果内存即将溢出(设定个阈值,比如说15%),就报错,跳转到错误页面。
chaowei_yuwen
2011-07-06 · TA获得超过224个赞
知道答主
回答量:88
采纳率:0%
帮助的人:92.9万
展开全部
你就直接打开任务管理器,查看java.exe的进程,内存占用如果一直增加,达不到一个稳定值,你可以尝试先设置-Xmx增大内存,如果内存还是一直增加直至溢出,那就是你程序上出现内存泄露的问题了.内存溢出捕获这个异常在异常处理那里跳转就可以了. 或者你用JAVA的内存监测工具监测内存使用 ,如果解决不了,可以继续追问
追问
不是用工具啊,是自己写程序代码来实现监控。
追答
最简单的都是通过任务管理器来看内存的,一般的内存溢出都可以解决,如果有溢出,那里的内存会突然增大,如果用程序写,没办法得到的准确的内存占用,内存泄露基本上都是程序上问题,全局对象有没有及时释放,数据库连接,结果集没及时关闭,一个方法里大量使用String里的+,解析大xml用JDOM等都会是导致内存溢出的因素,你要检查那里出现的内存溢出,你这个下载PDF如果把PDF都加载都内存中如果PDF比较大,你这个也很可能出现溢出,增大内存也是治标不治本的方法,从数据库取值如果是大文本这个字段所占内存基本都能估计出来的.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
BoringCheBC
2020-04-23
知道答主
回答量:3
采纳率:0%
帮助的人:1528
展开全部
/*计算某一段程序消耗的内存和时间*/
Runtime r = Runtime.getRuntime();
r.gc();//计算内存前先垃圾回收一次
long start = System.currentTimeMillis();//开始Time
long startMem = r.freeMemory(); // 开始Memory
GBSort(array,1,len);//!!!!!被测的程序!!!!!
long endMem =r.freeMemory(); // 末尾Memory
long end = System.currentTimeMillis();//末尾Time
//输出
System.out.println("TimeCost: "+String.valueOf(end - start)+"ms");
System.out.println("MemoryCost: "+String.valueOf((startMem- endMem))+"KB");
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
情龙人
2011-07-06 · 超过28用户采纳过TA的回答
知道答主
回答量:96
采纳率:0%
帮助的人:76.3万
展开全部
一般是监控用Jconsole吧。这个可以监控。jdk自带的。
内存溢出是可以捕获的。所以出现异常就跳到错误页面可以实现
追问
怎么监控?能具体点么?前提是不是用工具来人为进行监控,而是让程序自动进行监控。
追答
可以参考这个类,Runtime可以得到一些你需要的信息。
jconsole是个监控的软件。优化的时候使用。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
帐号已注销
2011-07-07 · TA获得超过253个赞
知道小有建树答主
回答量:253
采纳率:0%
帮助的人:248万
展开全部
这个不能吧,可以根据你自己程序中变量的数量和规模大概估算一下。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式