[Message Prev][Message Next][Thread Prev][Thread Next][Message Index][Thread Index]
Re: [MD:6405] PDUMP_OBJECT_ARRAY_SIZE
- X-ml-count: 6431
- Subject: Re: [MD:6405] PDUMP_OBJECT_ARRAY_SIZE
- From: Keiichiro Nagano (永野圭一郎) <knagano@xxxxxxxxx>
- Date: Thu, 24 Mar 2005 15:14:27 +0900
- User-agent: Wanderlust/2.12.0 (Your Wildest Dreams-pre) SEMI/1.14.6 (Maruoka) LIMIT/1.14.9 (Domyoji) APEL/10.6 Emacs/21.3 (i386-unknown-freebsd4.9) MULE/5.0 (SAKAKI)
すみません遅れました。藤井さん、ありがとうございます。
At Wed, 16 Mar 2005 07:18:53 +0900,
MIYOSHI Masanori wrote:
> >>>>> [meadow-develop : No.6407] にて
> >>>>> 藤井さんは書きました:
> 藤井> src/alloc.c を見てみたところ、PDUMP_OBJECT_ARRAY_SIZE のサイズを必要最
> 藤井> 小限より大きくしても、meadow.dmp のサイズや通常の実行時のメモリサイズ
> 藤井> には悪影響はないと判断しました。そこで、配列のサイズが足りなかったら内
> 藤井> 部で増量する仕組を追加するパッチを作りました。
>
> 藤井> portable dumper の仕組みを良く分かっている訳ではないので、思い違いがあ
> 藤井> るかもしれませんが、宜しければ使ってみてください。
>
> 良いと思うのですが、私も portable dumper の仕組みを良く分かってい
> る訳ではないので、確信はありません。
>
> コメントしてもらえませんか? > 実装した林さんか永野さん
結論から言いますと、PDUMP_OBJECT_ARRAY_SIZE の自動増量は、問題ないどこ
ろか、まさに「本来そうあるべきだったもの」です。どうしてやっていなかっ
たのかというと、単なる手抜きです。
PDUMP_OBJECT_ARRAY_SIZE は、pdump 時に一時的に作る lisp object の pool
の size です。(その pool というのは、まさに pdump_lisp_object のことで
す。) なので、これを必要以上に大きくしたところで、pdump 時に余分に
memory を使うくらいで、通常利用時には関係しません。
他にも PDUMP_HASH_SIZE, PDUMP_POINTERS_SIZE やらを #ifndef で #define
しているところが多数ありますが、これらの値も、明確な根拠はなく、本来は
実行時に決定すべきもの(のはず)です。不思議な値を #define しているのは、
たまたま先頭に書いてある PDUMP_HASH_SIZE が素数であることが望ましい性
質のものだったので、その時の気分で残りも素数にしてしまった、というだけ
のことです。本当は2のべき乗にすべきでした。
> 藤井> # あと、パッチを作成しているときに気になったのですが、
> 藤井> # pdump_lisp_object に格納されている構造体の index メンバと size メン
> 藤井> # バが初期化されていないように見えました。問題ないのでしょうか?
>
> むむ。確かに初期化されてないように見えますね。ゼロクリアで良いのか
> な?
これもポカミスです(と思います)。関数 pdump の先頭あたりで xmalloc しま
くっている部分は、全部直後に bzero やったほうがいいですね。
--
Keiichiro Nagano