Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 查找JVM分配的内存_Java_Memory Management_Jvm - Fatal编程技术网

Java 查找JVM分配的内存

Java 查找JVM分配的内存,java,memory-management,jvm,Java,Memory Management,Jvm,我正在寻找一种简单的方法来找出我的计算机上的JVM为特定进程分配了多少内存,我尝试过使用VisualVM,但它找不到进程 我应该提到的是,它运行的是Windows服务,而不是常规进程 有什么建议吗 提前感谢。JRE附带了一个名为jps的命令,您可以使用它查看所有正在运行的java进程。将jps与-v一起使用,可以为您提供每个进程的启动参数 您可以在这里看到启动参数,这些参数将告诉您每个进程的内存使用情况 此命令也应该在Windows上运行,只需用命令提示符替换终端即可 JVisualVM应该适

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

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

有什么建议吗


提前感谢。

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

您可以在这里看到启动参数,这些参数将告诉您每个进程的内存使用情况


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

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

无法监视本地应用程序(启动时出现错误对话框)说明:VisualVM启动后立即显示一个错误对话框,说明无法监视本地应用程序。本地运行的Java应用程序显示为(pid)。解决方案:如果用户名包含大写字母,则在Windows系统上可能发生这种情况。在本例中,username是username,但JDK创建的jvmstat目录是%TMP%\hsperfdata\u username。要解决此问题,请退出所有Java应用程序,删除%TMP%\hsperfdata\u用户名目录并创建新的%TMP%\hsperfdata\u用户名目录。 我在android中使用(如果您想了解编程方式):


也适用于PC(刚刚测试过)

此命令是否直接从windows上的CMD工作?或者它应该从一个特定的路径执行?我不知道,我没有使用windows,但我很确定你应该可以从任何文件夹调用它。它将返回JVM上运行的进程,这些进程不是特定于文件夹的。嘿,Bryan,它在windows上工作,只需要Java home的路径,谢谢。由于某种原因,这也找不到它。我应该提到的是,它运行的是一个Windows服务,而不是一个常规进程。如果目标Java应用程序作为服务运行,则jps不起作用。当然,您需要一个程序来关联运行时。要获取以kB为单位的值,请除以1024等。。。对于其他大小的程序,如果该程序是Tomcat服务,我可以将其与之关联吗?
// 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);