[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 # リハビリ中。