Hideyuki ENDO
endo-****@remus*****
2004年 1月 11日 (日) 01:41:28 JST
AthlonXP2000+なマシンを組んだところ、色々のたうち回ったえんどうです From: yusuk****@cheru***** Subject: [Anthy-dev 392] Re: anthy-4901 Date: Sat, 10 Jan 2004 11:52:36 +0900 (JST) > > こちらも自分で調べてみました.どうもanthy.elの > > anthy-do-send-recv-command > > 内で > > (accept-process-output nil 0 50) > > を呼んでいる部分が原因みたいですね. > > > > 変換候補リストを表示する場合,これが候補の数分(10個くらい)呼 > > ばれるとすると,0.5秒も待たされることになるかと思います. > 何故かはわからないのですが、私の手元、および多くの環境では > 50ms待たずにレスポンスがあるようで、放置してしまいましたが > 確かにマズイですね。 タイムアウトはタイムアウトなので、50msかからないのが通常ですよね。 うちの75MHzの486DX4機でも、候補列は一瞬で軽々と出ます。 > > いくらなんでもこれは待たされ過ぎるとおもうのですが,ここを > > (accept-process-output nil) > > としてはまずいのでしょうか? > > #これだと,プロセスからの返事が複数にわかれてバッファに入る > > #場合に取りこぼしが発生しそうな気もしますが・・・ > 返事は一行と決まっているのを利用して、改行が来るまで5msの待ちを > 繰り返すように変更したanthy-4910をリリースしましたので確認して > いただけないでしょうか? > *遅いマシンまたはxemacsをお使いの方も試して報告していただけると助かります。 accept-process-outputをループに入れるのはいいのですが、鈍足機では、 以前言ったように、5msでは、みじかすぎてまったく交信できませ〜ん(^◇^;)。 で、今回、agent.cの方でレスポンスの書き出し後にfflushを追加したようで すけど、こっちの方だけで解決策になってはいないでしょうか? (accept-process-output nil 0 50) はそのままにしてほしいですけど。というか、この50msって悪さします? 元の渡辺さんのケースですけど、subprocessとの通信がtty介さずpipeになっ ていたとか、そのあたりではないかという感じがします。list-processesはど うなっているでしょうか? あと、あたらしいanthy.el、タイポがあって(↓)、byte-compileが通りません。 カッコ足らずです。 ------------------------------------------------- --- /tmp/anthy-4910/src-util/anthy.el Sat Jan 10 10:59:06 2004 +++ anthy.el Sun Jan 11 01:08:58 2004 @@ -664,7 +664,7 @@ (process-send-string anthy-agent-process cmd) (while (or (= (buffer-size) 0) (= (count-lines (point-min) (point-max)) 0)) - (accept-process-output nil 0 5) + (accept-process-output nil 0 50)) (read (buffer-string))) (set-buffer old-buffer)))) ;; ------------------------------------------------- ではでは -- デジカメ買ったらfotologやりましょう。 http://www.fotolog.net/ -- Hideyuki ENDO endo-****@remus*****