[Anthy-dev 399] Re: anthy-4901

アーカイブの一覧に戻る

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*****



Anthy-dev メーリングリストの案内
アーカイブの一覧に戻る