1

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 サーバー VM (ビルド 23.2-b09、混合モード)

4

2 に答える 2

1

そのメモリは、プログラムやその他の関連クラス、Java ランタイム、ライブラリなどをロードするために使用されます。あなたのプログラムは Thread、String、Exception を使用しており、それらはさらに他の多くのクラスを使用しています。それを考えると、10Mbは本当に少ないです。

于 2013-04-13T20:52:11.343 に答える
1

jvm はメモリを内部的に管理します。アプリケーションの起動時に読み込まれるものはたくさんあります。さらに、jvm は OS からプリエンプティブにメモリを取得するため、新しいオブジェクトを作成するときのオーバーヘッドが小さくなります。

この記事では、jvm のメモリ使用量の一部について説明します。

抜粋:

割り当てられたメモリは JVM によって割り当てられたメモリの全体量であり、使用済みメモリは実際に使用されているメモリの量です。

于 2013-04-13T20:55:13.627 に答える