[Yarv-devel] initial heap image

MAEDA Atusi maeda-yarv @ atusi.org
2004年 2月 11日 (水) 03:14:48 EST


# 一見イリーガルなMessage-IDをつけてみる実験

shudo at computer.org writes:

> > システムのスタートアップを速くするために、
> > ・インストール時に、ライブラリを全部読み込んだヒープイメージをファイル
> >   にダンプ
> > ・実行時に、そのファイルを同じアドレスにmmap
> 
> (ロード方法が mmap(2) かどうかは知らないですが)
> たしか Jikes RVM (*) は、一部のクラスファイルのロード結果まで
> 含んだメモリイメージをダンプして作っておきます。

見てみました。
メモリを割り付けた後、どかんとファイル全部をfreadしています。
mmapは、メモリを指定の番地(ダンプした時と同じ番地)に割り付けるためにだ
け使っています。

tools/bootImageRunner/IA32/libvm.C:

    bootRegion = mmap ((void *) bootImageAddress, roundedImageSize,
                       PROT_READ | PROT_WRITE | PROT_EXEC,
                       MAP_ANONYMOUS | MAP_PRIVATE | MAP_FIXED, -1, 0);
    ...
    /* read image into memory segment */
    int cnt = fread (bootRegion, 1, actualImageSize, fin);

ほとんど全体を触ったりするなら、全部読んじゃった方がかえって速いのかな。

> (*) IBM ワトソンで開発されている JVM。旧名 Jalapeno (e の上には "~")。

# 細かいツッコミですみませんが「nの上に~」です。:-)

				前田敦司


Yarv-devel メーリングリストの案内