emacs + skk での変換待ち
Debian etchにて emacs21 で skk を使って漢字変換する際に,数秒待たされることがあった. Debian sarge でも同様で, 1年くらい悩まされてきたように思う.具体的にはローカル辞書にない語を変換したり,ローカル辞書の候補を全部表示した後に変換すると, skk サーバとの通信で emacs プロセスが数秒ほど CPU 利用率 100 % の状態になってしまう. ~/.emacs での設定をいじったり,利用パッケージを変えても解決せず, web を検索したり,身近な skk ユーザに尋ねてもわからなかったので放置しておいたが,今日になって偶然,skk の mailing list アーカイブにて
skk-search-server-1 is slow
で始まるスレッドに対応する情報と解決策を見つけた.

手元の環境で (setq skk-server-report-response t) とすると,「189876 回 SKK サーバーの応答待ちをしました」となった.

(sit-for 0.01) を書き足す.

% sudo vi /usr/share/emacs/site-lisp/ddskk/skk-server.el

--- skk-server.el-orig 2006-02-18 09:05:25.000000000 +0900
+++ skk-server.el 2007-08-10 05:34:26.000000000 +0900
@@ -101,6 +101,7 @@
(process-send-string skkserv-process (concat "1" key " "))
(while (and cont (skk-server-live-p))
(accept-process-output)
+ (sit-for 0.01)
(setq count (1+ count))
(when (> (buffer-size) 0)
(if (eq (char-after 1) ?1) ;?1

バイトコンパイルをしなおす.

% sudo /usr/lib/emacsen-common/packages/install/ddskk emacs21
install/ddskk: Handling install for emacsen flavor emacs21
% sudo /usr/lib/emacsen-common/packages/install/ddskk xemacs21
install/ddskk: Handling install for emacsen flavor xemacs21

SKK サーバの応答待ちは 1 ~ 数回になり,数秒の待ち時間もなくなった.
[PR]
by edogawadai_bio | 2007-08-10 06:24 | comp
<< median 歯医者 >>