如何通过java代码查看某个功能所消耗的内存?

血饮 2013-01-27 09:23:17
public class Memory {
/**
*下载文件方法
*/
public void downLoadFile(String path){

}
}
如上类中,有个下载的方法,如果通过java代码查看该功能消耗了多少内存?请大家指点一下。
...全文
619 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
fengqiujian 2015-05-12
  • 打赏
  • 举报
回复
java 可以直接用Jconsole来分析内存啊
Lena-Yang 2013-01-28
  • 打赏
  • 举报
回复
可以把代码搞成个死循环,为了不让进程退出。 然后看看用C语言怎么实现这个功能 再用java去调用C代码
血饮 2013-01-28
  • 打赏
  • 举报
回复
在网上查了一下,有这种方法,说在downLoadFile方法执行前调用一个线程,通过线程的Runtime.getRuntime().totalMemory() Runtime.getRuntime().freeMemory()来计算消耗内存,然后在downLoadFile方法执行完后关闭线程。
public class TestMemory extends Thread {
	 private boolean _run = true;
	    public void stopThread(boolean run) {
	        this._run = !run;
	    }

	public void run() {
		while(_run){
			long l = Runtime.getRuntime().totalMemory()/1024/1024;
			long f = Runtime.getRuntime().freeMemory()/1024/1024;
			long rem = l - f;
//			long rem1=rem/1024/1024;
			System.out.println("%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%OccupiedSpace++++++++++%%%%%%%%%%%%%:" + rem + "M"+";totalMemory:"+l+"M"+";freeMeroy:"+f+"M");
//			System.out.println("%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%OccupiedSpace++++++++++%%%%%%%%%%%%%:" + rem1 + "M");
		}
		
	}
}
这个是我写的线程类方法, TestMemory tm=new TestMemory(); 在downLoadFile方法前调用线程的tm.start()方法,在downLoadFile执行完后调用 tm.tm.stopThread(true);不知道这样是否正确。大家给点意见
snow-is-my-Love 2013-01-28
  • 打赏
  • 举报
回复
java 不能直接控制内存,jvm 自带工具查看
血饮 2013-01-28
  • 打赏
  • 举报
回复
引用 2 楼 hardwin 的回复:
可以把代码搞成个死循环,为了不让进程退出。 然后看看用C语言怎么实现这个功能 再用java去调用C代码
java代码不能实现吗?
zqfddqr 2013-01-27
  • 打赏
  • 举报
回复
不好查看 java自己带一个工具可以看得在java的安装目录里

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧