emacsにはプロセスビューアー(リソースマネージャー)または同等のものがありますか?


14

時折、emacsはCPU使用率100%に達することがあります。明らかにこれが発生すると、暴走プロセスに問題があります。

emacsで実行中のすべてのプロセスを表示する方法があるかどうか疑問に思っていますか?

Unix htopのようなもの、インタラクティブなシステムプロセスモニターとビューア... htop


3
list-processes
npostavs

@npostavsありがとう。リストプロセスは良いです。メモリやCPU使用率などのリソースでより多くの情報を提供して何かがあればしかし、私は疑問に思って
オリオンを

2
私は考えることができる唯一のことは、プロファイリングされています gnu.org/software/emacs/manual/html_node/elisp/Profiling.html
lawlist

3
法律家は正しい。プロセスビューアーを探しているとは思わない(作成list-processesまたはproced無関係)。あなたが気にする唯一のプロセスは(単一の)emacsプロセス自体であり、なぜあなたはそれがそんなに多くのCPU時間やメモリを利用しているのかを見つけようとしています。そのためには、emacsプロファイラーを使用する必要があります。
phils

回答:


11

この質問は2016年に行われました。現在、2019年には次のようなものがありますM-x proced

システムプロセスを表示し、それらに信号を送信するモード。

Procedは、現在のシステムプロセスのリストを含むEmacsバッファーを作成します。通常のEmacsコマンドを使用してこのバッファー内を移動し、特別なProcedコマンドを使用してリストされたプロセスを操作できます。proced-modeはじめに参照してください。


自動バッファ更新(デフォルトでは5秒ごと)のような動作のためM-x proced-toggle-auto-updateに、procedバッファで有効にしたい場合があることに注意してくださいtop
ピエールタラミー

9

他の回答に加えて、元の投稿者は、組み込みのプロファイリング機能の使用を検討することもできます。https//www.gnu.org/software/emacs/manual/html_node/elisp/Profiling.html

プロファイリングを開始するには、と入力しM-x profiler-startます。プロセッサ使用量、メモリ使用量、またはその両方でプロファイルを選択できます。何らかの作業を行った後、入力M-x profiler-reportして、プロファイルすることを選択した各リソースの要約バッファーを表示します。レポートバッファの名前にはレポートが生成された時間が含まれているため、以前の結果を消去せずに別のレポートを後で生成できます。プロファイリングが終了したら、入力しますM-x profiler-stop(プロファイリングに関連する小さなオーバーヘッドがあります)。

この機能に関する詳細については、上記のマニュアルへのリンクを参照してください。


7

確認することもできますlist-processes

list-processes' simple.el'のインタラクティブなコンパイル済みLisp関数です。

(list-processes &optional QUERY-ONLY BUFFER)

Emacsサブプロセスであるすべてのプロセスのリストを表示します。オプションの引数QUERY-ONLYが非nilの場合、query-on-exitフラグが設定されているプロセスのみがリストされます。
終了またはシグナルとしてリストされたプロセスは、リストが作成された後に実際に削除されます。
オプションの引数BUFFERは、「*Process List*」の代わりに使用するバッファを指定します。戻り値は常にnilです。

この関数は、Emacsによって起動されたプロセスのみをリストします。システムで実行されている他のプロセスを表示するには、「list-system-processes」を使用します。

必要な多くの機能を見逃しているように見えますが、少しコーディングすることで望みの結果が得られるかもしれません(もしそうなら、パッチをアップストリームに送ってください。Emacsでこの機能を見たいことがあります)。私はあなたの問題に対するより良い既製の候補者を見つけることができませんでした。


6

ヘルムトップをご覧ください。必要なものがすべてリストされ、プロセスにシグナルを送信するアクションがあります。


5

私はhtopが好きなので、emacsでも使用しています。ただし、インタラクティブ部分はこの方法では機能しません。

(defun htop ()
  (interactive)
  (if (get-buffer "*htop*")
      (switch-to-buffer "*htop*")
    (ansi-term "/bin/bash" "htop")   
    (comint-send-string "*htop*" "htop\n")))
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.