2016年2月6日土曜日

EmacsでCPU 100%使用して操作できなくなったら

あるJavaのソースコードを開くと、Emacsのプロセスが100% CPUを使ってしまい、カーソル移動もしにくくなってしまうことがありました。
調査方法
  1. M-: で (setq debug-on-quit t) と入力してください
  2. CPU 100%つかう状況になったらC-gを押してください(Quit)
  3. *Backtrace* バッファにQuitされたEmacs Lispのバックトレースが出ます。それをヒントに原因を見つけます。
今回遭遇した事象
Ubuntu 14.04のEmacs 24.3.1 で which-function-mode を有効にした状態であるJavaファイルを開くと起きました。 Mac版の Eamcs 24.5.1では再現しないので、Emacsのバージョンをあげると回避できるかもしれません。 EmacsでCPUを食うことはあまりなかったので、結構驚きました。
後日談: Emacsにprofiler機能があったのか...
M-x profiler-start で開始して、 M-x profiler-report で結果が見られます。 M-x profiler-stop で終了。これで、Emacsが遅い原因がわかるかも。

0 件のコメント:

コメントを投稿