不使用java的Linux内存使用内存

我们有一个Java应用程序,我们写了这些代码的最后部分

Runtime runtime = Runtime.getRuntime(); long memory = runtime.totalMemory() - runtime.freeMemory(); System.out.println("\n\nUsed memory is bytes: " + memory); 

我们注意到,随着时间的推移,顶部显示应用程序的内存(%)列增加,但Java内存(从运行时variables)值显示上下波动? 那么,我们应该遵循哪一个来确定确切的内存使用? 我的意图是确定我的应用程序中是否有任何内存泄漏?

当JVM启动时,它会从操作系统中获取一些内存。 这是您在ps和top等工具中看到的内存量。

然后你的应用程序开始使用这个内存:这是你的代码和工具,如jstat看到的内存。

所以,如果你想debugging应用程序内的内存泄漏,你不想使用顶部或PS。