Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/333.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 在Eclipse中运行空程序需要约10 Mb的内存。为什么?_Java_Memory - Fatal编程技术网

Java 在Eclipse中运行空程序需要约10 Mb的内存。为什么?

Java 在Eclipse中运行空程序需要约10 Mb的内存。为什么?,java,memory,Java,Memory,在Java中,此程序: public class test { public static void main(String[] args) { try { Thread.sleep(7000); System.exit(1); } catch (InterruptedException e) { e.printStackTrace(); } } }

在Java中,此程序:

public class test {

    public static void main(String[] args) {

        try {
            Thread.sleep(7000);
            System.exit(1);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }

    }

}
当我在Eclipse中运行它时,只需休眠7秒钟,然后检查系统监视器,看看它是否有10Mb的内存。在没有Eclipse的终端上运行程序也需要10Mb

这些兆字节是为什么保留的

环境: java版本“1.7.0_09-icedtea” OpenJDK运行时环境(fedora-2.3.3.2.fc17-i386)
OpenJDK Server VM(build 23.2-b09,混合模式)

内存用于加载程序和其他相关类、Java运行时、库等。程序使用线程、字符串、异常,这些类反过来又使用许多其他类。考虑到这一点,10Mb实际上更少。

jvm在内部管理内存。当应用程序启动时,会加载很多东西。此外,jvm会预先从操作系统获取内存,因此在创建新对象时,开销较小

这涵盖了jvm内存使用的一些方面

摘录:


分配的内存是JVM分配的总内存量,而使用的内存是实际使用的内存量。

不要忘记JVM本身-如果我知道您正在Linux的系统内存监视器中检查使用的内存。@Cebence完全正确。JVM将为自己分配相当数量的内存,这样它就不必在每次程序执行分配时按需请求它。您必须查看分析器才能查看实际使用情况。