在Java中,是否有可能增加JVM的可用内存和/或杀死其他Java程序?
我对高级Java没有经验,所以请忍受我。
我对Java实现可能被称为“自主”的功能的能力感到好奇。假设我们有两个Java程序正在运行。一个程序确定另一个程序正在占用内存,从而终止该程序和/或为JVM分配更多内存。
我知道在Java中你可以看到可用的内存是什么(请参阅如何在Java中检查CPU和内存使用情况?),但是如果我们想更深入地挖掘呢?
谢谢。
我对高级Java没有经验,所以请忍受我。
我对Java实现可能被称为“自主”的功能的能力感到好奇。假设我们有两个Java程序正在运行。一个程序确定另一个程序正在占用内存,从而终止该程序和/或为JVM分配更多内存。
我知道在Java中你可以看到可用的内存是什么(请参阅如何在Java中检查CPU和内存使用情况?),但是如果我们想更深入地挖掘呢?
谢谢。
你问:-是否有可能增加JVM的可用内存和/或杀死其他Java程序?
是的,您可以增加如下的堆大小:jvm
java -Xmx512M ClassName //512M = memory you want to increase
要杀死像这样的进程: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);
有关更多信息,请查看 此处 。
1. 增加 JVM 的内存
您可以使用以下代码在 Java 中指定初始堆大小和最大堆大小。
java -Xms64m -Xmx256m ...
在这个
-Xms<size> specifies the initial Java heap size
-Xmx<size> the maximum Java heap size.
2.检查程序的易用性内存量
当您在计算机中安装jdk时,会为您提供一个非常方便的工具,该工具显示了在计算机中占用所有正在运行的java程序的内存,堆空间。
Java Visual VM
http://docs.oracle.com/javase/6/docs/technotes/guides/visualvm/
你可以在你安装的jdk的bin文件夹中找到它。
之前的堆栈溢出帖子也应该有助于监视 Java 应用程序自己的内存使用情况