我正在寻找一种简单的方法来找出我计算机上的 JVM 分配给特定进程的内存量,我尝试使用 VisualVM,但它找不到该进程。
我应该提到它正在运行 Windows 服务,而不是常规进程。
有什么建议么 ?
预先感谢。
我正在寻找一种简单的方法来找出我计算机上的 JVM 分配给特定进程的内存量,我尝试使用 VisualVM,但它找不到该进程。
我应该提到它正在运行 Windows 服务,而不是常规进程。
有什么建议么 ?
预先感谢。
JRE 附带一个名为的命令,jps
您可以使用它来查看所有正在运行的 java 进程。使用jps
with-v
为您提供每个进程的启动参数。
你可以在这里看到启动参数,它会告诉你每个进程的内存使用情况。
此命令也应在 Windows 上运行,只需将终端替换为命令提示符即可。
我在android中使用(如果你想知道一种编程方式):
// get the total memory for my app
long total = Runtime.getRuntime().totalMemory();
// get the free memory available
long free = Runtime.getRuntime().freeMemory();
// some simple arithmetic to see how much i use
long used = total - free;
System.out.println("Used memory in bytes: " + used);
也适用于 PC(刚刚测试)!
JVisualVM 应该适合你。在某些特定情况下,该过程未显示在 visualVM 中。
无法监控本地应用程序(启动时出现错误对话框) 说明:VisualVM 启动后立即显示一个错误对话框,说明无法监控本地应用程序。本地运行的 Java 应用程序显示为 (pid ###)。解决方法:如果用户名包含大写字母,这可能在 Windows 系统上发生。在这种情况下,用户名是 UserName,但 JDK 创建的 jvmstat 目录是 %TMP%\hsperfdata_username。要解决此问题,请退出所有 Java 应用程序,删除 %TMP%\hsperfdata_username 目录并创建新的%TMP%\hsperfdata_UserName 目录。