[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 メーリングリストの案内