我们有一个运行在Jboss上的j2ee应用程序,我们想要监控它的内存使用情况。目前,我们使用以下代码
System.gc();
Runtime rt = Runtime.getRuntime();
long usedMB = (rt.totalMemory() - rt.freeMemory()) / 1024 / 1024;
logger.information(this, "memory usage" + usedMB);
这段代码运行良好。这意味着它显示了与现实相对应的记忆曲线。当我们从数据库创建一个大的xml文件时,曲线上升,提取完成后下降。
一位顾问告诉我们,显式调用gc()是错误的,“让jvm决定何时运行gc”。基本上,他的观点与disscussed here是一样的。但我还是不明白:
https://stackoverflow.com/questions/1058991
复制相似问题