2008年9月15日月曜日

PackFileEditor



 以前にパックファイルを作成するモジュールとツールを作ったのだけど、
仕様が気になって新たに作り直してた。

 以前のパックファイルの使用では、
  • ファイル名の長さ
  • ファイル名
  • ファイルサイズ
  • ファイルデータ
の4つをひとまとまりのデータとして、前から順番に記録していく方法だった。

 利点は、
  1. ファイルデータへのアドレスを省略できる
  2. 追加が簡単。後ろに追記すればいい。

という2点。

 欠点は、読み込みのときはファイル全体をなめなければならず、効率が悪い点であった。 もうひとついえば、データへのアドレスなんて4Byte*nなんで、とくに重たいわけでもない。

 そこで、よくあるパックファイルの形式にしてみた。
まずファイル情報のデータ郡があり、それからファイルのデータが書き込まれている形式で、

  • ファイル数
  • {ファイル名の長さ、ファイル名、ファイルサイズ、ファイルデータへのアドレス}*n
  • ファイルのデータ * n

といった感じ。
 で、利点が、読み込み時はとりあえずファイル先端のほうだけ読めば良いので、読み込みは効率的。

 そんなわけで、画像を見てのとおり一通りの機能を実装したツールを作ったはいいんだけど、この形式の欠点をまったく考慮してなかった。
 というのも、ファイルのデータが設置される場所がファイル情報数に依存ため、最終的に書き込むまでファイルデータ等をまるまるメモリに保存していないといけない。効率云々の問題ではなくなったしまった。
 たかだか数MB程度の消費といえばそれまでだけど、これは許せんッ!
ってことでせっかく作ったツールもおじゃんである。
読み込みが遅いよりもメモリを食うほうが嫌だというのは、時代遅れだろうか。

 冷静に考えれば、新たに作った方式のほうがまとめて書き込みする分、数倍は高速なはず。しかしこの気持ち悪さは異常! たえられない!

1 件のコメント:

pabju さんのコメント...

In English:
Hello, I am very interested on the "PackFileEditor" application.
I would like to give me the source code for operation through the mail pjucys@gmail.com.
Thank you very much from Argentina! Greetings!

In spanish:
Hola!, me interesa mucho sobre la aplicacion "PackFileEditor", me gustaría que me dés los códigos fuentes para ver el funcionamiento a través del mail pjucys@gmail.com .
Muchas Gracias desde Argentina !!! Saludos !!