在Eclipse中运行空程序需要大约10 Mb。为什么?

时间:2013-04-13 20:48:50

标签: java memory

在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。

保留那些兆字节?

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

2 个答案:

答案 0 :(得分:1)

该内存用于加载程序和其他相关类,Java Runtime,libraries等。您的程序使用Thread,String,Exception,而后者又使用许多其他类。考虑到这一点,10Mb真的更少。

答案 1 :(得分:1)

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

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

摘录:

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