日記/2007-02-19

2007-02-20 (火) 00:44:54 (3924d)
お名前:

追記。
初回限定の人が、ソースのコンパイルまでやって再検証している様子。
初回限定の人のほうでも、AIスレ報告を元に、ソースコンパイル後の情報を付加して再整理している様子。
こちら

で、これを見ていてふと思いついたこと。
もしかして、ini ファイル読み込みの際に用いている文字列マッチングに手間取ってる?
いや、考えてみたらiniファイル読み込み処理って「* = *」って文字列検索なんですよね。
こういう領域スキャンって、かなりリソースを食うのよ、常識的に。

試しに、ai_option.ini のコメント類をごっそり削ってみた・・・あ〜。微妙に効いてる感じがする。
iniファイル読み込みが遅いってのは確かだけど、単純なリードの遅さというよりは、解析する必要がないコメント部分のアクセスが無駄に効いている可能性もあるかも。
気のせいかもしれんけど(笑)

ん〜・・・ヘルプを失くすのは忍びないんだよね。
編集ミスとヘルプがないのとだと、ヘルプない方が危ないし。
やっぱり config系はlua化するかねぇ・・・あんまり気乗りしないんだけど。

どちらにしても、Glenelgの場合分割ロードしているので、iniファイルへのアクセス開始はそれなりに遅いタイミング:全体をロードしないと始まらないので、ロード後1秒以上あとにくるはず。
実際、現状のGlenelgだと「ロード直後」と「ロード後一拍後」の2箇所のタイミングでラグのピークがあるように感じる。
後者が ini ファイルアクセスのタイミングとして、前者の改善検討がまだ残ってることになる。
下記の「連続テレポ」にしても、使い方から考えるとiniファイルどうこう以前のタイミングでの話ではないか、と思うし。

・・・まあこっちは他のAI同様、トータルサイズ削減しかなさそうなので、苦しそうですが。


AIスレで、AI起動の重さについて調査された結果があった。
単純に「テレポを20回実施」した時間を測定したとのこと。単位は sec が正しいようだ。
成績順にソートしてみる。

19min  ホムなし
19min  デフォルトAI               4.94kb 3
19min  幻塵AI 02/12 070212         14.8kb 7
19min  どきどきAI 08/23 060823u      31.5kb 1
20min  初回限定AI 02/07 0.70207      58.9kb 17
21min  くまーAI 07/23 0.53a          22.2kb 4
23min  きのこAI 02/10 0.13a         24.5kb 7
24min  玉蟲AI 02/10 2.269           912kb 27(include readme.htm)
26min  Glenelg 02/14 0.48a           189kb 244
30min  こっこAI 02/13 4.53           151kb 1
32min  rhapsoAI 11/29 1.53          286kb 42(ほむTALK同梱)
34min  可能な限りAI 02/12 1.4h       59.3kb 4
39min  工体AI私的修正版 02/06 103+15  91.5kb 27

以前に説明した通りGlenelgでは初期起動ルーチンを大きく変更したのだが、それでも正直遅い部類に入るようだ。
20回テレポだから、20秒でできれば1テレポ1秒。
ホム抜きで19秒という実力から見て、 Glenelgでは7秒オーバーだから、テレポ1回ごとに0.35秒程度損をしている計算になる。

Glenelgは、現状起動直後は「ほとんど何もしていない」。
つまり重いのは「AIのアルゴリズム」ではなく「AIの読み込み」。
だが、以前の検証で「コメントはなんぼあっても読み込み速度に影響しない」ことはわかっている。
つまり、「AIの、意味のある部分の読取」に時間がかかっている。

・・・ここからは友瀬の経験的な部分だが。
直感的に、Global変数の初期化に時間がかかっているような気がしてきた。
このあたりをちょっといじるような調査をしていきたいと思う。