[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[mhc:00531] Re: スピード狂への道
乃村です。
On Sat, 22 Apr 2000 00:48:16 +0900,
TSUCHIYA Masatoshi <tsuchiya@xxxxxxxxxxxxxxxxxxxxxxx> said:
> 土> mhc を高速化するべく小細工を始めました。
>
> 小細工その2。(ddate-days) や (ddate-ww) が時間を食っていそうだなぁ、と
> 思ったので、計算結果を cache するようにしてみました。
確かにこの部分は時間がかかると思うのですが、
days 側がそこまでやるのはかわいそうな気が。。
1ヶ月分の scan をする場合は、常に引数を +1 づつして 30回
程度発生することになるので、N月1日の ww だけ調べて、
あとは単純にインクリメントしてやれば、1/30 の呼び出し回数で済みます。
ddate-days ww で cache するなら、上の性質を利用して、
1個前の値をキャッシュしておけば十分でしょう。
年月日の 日だけ +1 されて呼ばれるケースが多いので、
そのチェックをしてキャッシュの値 +1 を返すようにしておく訳です。
で、僕がちょこっと調べた所では mhc が重い原因は、
立ち上げ時:
.schedule の春分、秋分、振り替え休日のデータ読み込み。
各ファイルからスケジュールオブジェクトに
変換するときのヘッダのパーズ。
毎回 save-excursion してヘッダを頭からサーチしてを繰り返している。
一発でやると速くなりそう。
スキャン時:
右に表示しているカレンダーのせいで、常に 4ヶ月分のスキャンをしている。
予定のある日に underline も重い。
C-ct で 消すと 4倍速くなります。
3ヶ月カレンダーがガンです。僕が高速化するときは、まずこれから手
を入れようと思っていました。
ちょっと仕事が落ち着いたので、まずは Gnus 対応が stable になった
版の 0.25 を出したいと思います。
土屋さん、寺西さん、三好さんのパッチをマージすればいいのかな。
--
nom # リハビリ中。