Cof*_*fee 14 java memory jvm process
我对高级Java缺乏经验,所以请耐心等待.
我很好奇Java能够实现可能被称为"自主"的功能.假设我们有两个Java程序在运行.并且一个程序确定另一个程序正在占用内存,从而杀死该程序和/或为JVM分配更多内存.
我知道在Java中你可以看到可用的内存是什么(请参阅如何检查Java中的CPU和内存使用情况?),但是如果我们想深入挖掘怎么办?
谢谢.
Sam*_*Sam 11
你问: - 是否有可能增加JVM的可用内存和/或杀死其他Java程序?
是的可能你可以增加jvm像堆的大小:
java -Xmx512M ClassName //512M = memory you want to increase
Run Code Online (Sandbox Code Playgroud)杀死一个过程: taskkill /F /IM <processname>.exe
注意
- >但这不是一个好主意,因为堆可能是固定大小的,也可能根据垃圾收集器的策略进行扩展.
- >打开命令提示符类型taskkill/?以了解详细信息.
3.并且您可以通过
这种方式检查当前保留的总内存,可用内存和最大内存jvm.
int MegaBytes = 1024*1024 ;
long freeMemory = Runtime.getRuntime().freeMemory() / MegaBytes;
long totalMemory = Runtime.getRuntime().totalMemory() / MegaBytes;
long maxMemory = Runtime.getRuntime().maxMemory() / MegaBytes;
System.out.println("Memory used by JVM: " + (maxMemory - freeMemory));
System.out.println("freeMemory in JVM: " + freeMemory);
System.out.println("totalMemory in JVM : " + totalMemory);
System.out.println("maxMemory in JVM: " + maxMemory);
Run Code Online (Sandbox Code Playgroud)
有关更多信息,请查看此处.
1.增加JVM的内存
您可以使用以下代码在Java中指定初始和最大堆大小.
java -Xms64m -Xmx256m ...
Run Code Online (Sandbox Code Playgroud)
在这
-Xms<size> specifies the initial Java heap size
-Xmx<size> the maximum Java heap size.
Run Code Online (Sandbox Code Playgroud)
2.检查程序使用的内存容量
当你在计算机中安装jdk时,会有一个非常方便的工具,它显示了计算机中所有运行java程序的内存,堆空间.
Java Visual VM
http://docs.oracle.com/javase/6/docs/technotes/guides/visualvm/
你可以在你安装的jdk bin文件夹中找到它.
以前的stackoverflow帖子也应该有助于 监视Java应用程序自己的内存使用情况
| 归档时间: |
|
| 查看次数: |
1107 次 |
| 最近记录: |