如何计算一个Java程序运行占用多少内存,

一个Java程序运行时候,任务管理器上面的内存专用工作集显示的内存占用,如何用代码计算
...全文
967 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
这个是指当时这个类的内存占用情况还是当时所有的java程序的内存占用情况?
  • 打赏
  • 举报
回复
因为任务管理器里的内存占用情况还包括Java虚拟机本身占用的内存
  • 打赏
  • 举报
回复
运行结果为何和任务管理器上面的占用内存不一样
  • 打赏
  • 举报
回复
package paixu; import java.io.IOException; import java.util.ArrayList; import java.util.List; public class Test { public static void main(String args[]) throws IOException{ Runtime run = Runtime.getRuntime(); System.in.read(); // 暂停程序执行 // System.out.println("memory> total:" + run.totalMemory() + " free:" + run.freeMemory() + " used:" + (run.totalMemory()-run.freeMemory()) ); run.gc(); //System.out.println("time: " + (new Date())); // 获取开始时内存使用量 long startMem = run.totalMemory()-run.freeMemory(); System.out.println("memory> total:" + run.totalMemory() + " free:" + run.freeMemory() + " used:" + startMem ); String str = ""; for(int i=0; i<50000; ++i){ str += i; } //System.out.println("time: " + (new Date())); long endMem = run.totalMemory()-run.freeMemory(); System.out.println("memory> total:" + run.totalMemory() + " free:" + run.freeMemory() + " used:" + endMem ); System.out.println("memory difference:" + (endMem-startMem)); /* run.gc(); System.out.println("memory> total:" + run.totalMemory() + " free:" + run.freeMemory() + " used:" + (run.totalMemory()-run.freeMemory()) ); */ } }

50,526

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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