5

我正在寻找一种简单的方法来找出我计算机上的 JVM 分配给特定进程的内存量,我尝试使用 VisualVM,但它找不到该进程。

我应该提到它正在运行 Windows 服务,而不是常规进程。

有什么建议么 ?

预先感谢。

4

3 回答 3

7

JRE 附带一个名为的命令,jps您可以使用它来查看所有正在运行的 java 进程。使用jpswith-v为您提供每个进程的启动参数。

终端

你可以在这里看到启动参数,它会告诉你每个进程的内存使用情况。

此命令也应在 Windows 上运行,只需将终端替换为命令提示符即可。

于 2013-07-16T12:16:40.663 回答
6

我在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(刚刚测试)!

于 2013-07-16T12:20:02.333 回答
1

JVisualVM 应该适合你。在某些特定情况下,该过程未显示在 visualVM 中。

查看一些已知问题

无法监控本地应用程序(启动时出现错误对话框) 说明:VisualVM 启动后立即显示一个错误对话框,说明无法监控本地应用程序。本地运行的 Java 应用程序显示为 (pid ###)。解决方法:如果用户名包含大写字母,这可能在 Windows 系统上发生。在这种情况下,用户名是 UserName,但 JDK 创建的 jvmstat 目录是 %TMP%\hsperfdata_username。要解决此问题,请退出所有 Java 应用程序,删除 %TMP%\hsperfdata_username 目录并创建新的%TMP%\hsperfdata_UserName 目录。
于 2013-07-16T12:17:34.890 回答