某所で大量のメモリを使うAppletを作ることになったので、Appletでどれくらいのメモリが使えるのかを試してみました。

テストアプリ

テストアプリはシンプルに無限ループ内でじゃんじゃんメモリを確保していき、Out Of Memory が発生した時点での確保したメモリ容量を表示します。

public class MemTestApplet extends JApplet {

  private static final long serialVersionUID = 4741535794748911197L;

  private static final int KBYTE = 1024;

  private long memoryLimit = 0;

  public MemTestApplet() {
    super();
  }

  public void init() {
    byte[] test = new byte[KBYTE];
    ByteArrayOutputStream os = new ByteArrayOutputStream();

    System.out.println("Applet Stress Test Begin");

    try {
      while (true) {
        os.write(test);
      }
    } catch (OutOfMemoryError e) {
      memoryLimit = os.size();
      System.out.println("Memory Limit=" + memoryLimit + "byte");
      System.out.println(
        "Memory Limit=" + (memoryLimit / KBYTE) + "KB");
      System.out.println(
        "Memory Limit=" + (memoryLimit / KBYTE / KBYTE) + "MB");
      System.gc();
      e.printStackTrace();
    } catch (IOException e) {
      e.printStackTrace();
    }
  }

  public void paint(final Graphics g) {
    g.drawString(
      "Memory Limit=" + (memoryLimit / KBYTE / KBYTE) + "MB", 0, 20);
  }
}

用意したHTMLは、

<html>
<head><title>Applet Memory Test</title>
</head>
<body>
<applet name="ChartApplet"
        codebase="./bin"
        code="com.snail.applet.MemTestApplet.class"
        width="320"
        height="240">
</applet>	  
</body>
</html>

実行結果

applet.png

どうやらデフォルト状態では、32MBまでしかメモリを確保できないようです

Applet(JRE)が使えるメモリ容量を増やす

  1. コントロールパネル > Java で AppletのVM引数を設定することが出来ます
    appletSetting1.png
     
    appletSetting2.png
  2. 最大メモリを512MBにしたところ、256MBまでメモリを確保できるようになりました
    applet512.png

最大何MBまで確保できるか?

どうやら、Windows XPではApplet(JRE1.5)に割り当てるメモリを512MB以上にするとブラウザからAppletが起動できなくなるようです(JREエラーが起きる)。
Windows 2000では256MBがVMに割り当てられるメモリ容量の上限でした。

実行環境VMに割り当てられる最大メモリ容量(JRE起動引数)
WinXP + IE6.0 + JRE1.5-Xmx512MB
WinXP + Fire Fox 1.06 + JRE1.5-Xmx512MB
Win2K + IE6.0 + JRE1.5-Xmx256MB

チェック用アプレット

Your borwser is not supporting object tag. Please use one of the latest browsers.
Go to http://hondou.homedns.org/AppletExample/build/MemTestApplet.html


Java#GUI


添付ファイル: fileapplet512.png 811件 [詳細] fileapplet.png 754件 [詳細] fileappletSetting2.png 828件 [詳細] fileappletSetting1.png 796件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS   sitemap
Last-modified: 2011-12-21 (水) 21:01:34 (1811d)
ISBN10
ISBN13
9784061426061