Apakah emacs memiliki penampil proses (manajer sumber daya) atau yang setara?

14

Terkadang emacs akan mencapai 100% penggunaan CPU. Jelas ketika ini terjadi ada masalah dengan proses pelarian.

Hanya ingin tahu apakah ada cara untuk melihat semua proses yang berjalan di emacs?

Seperti unix htop, monitor & penampil proses sistem interaktif ... htop

orion
sumber
3
list-processes?
npostavs
@npostavs terima kasih. proses daftar baik. Tetapi saya bertanya-tanya apakah ada sesuatu yang memberikan lebih banyak informasi tentang sumber daya termasuk memori dan penggunaan cpu
orion
2
Satu-satunya hal yang dapat saya pikirkan adalah membuat profil: gnu.org/software/emacs/manual/html_node/elisp/Profiling.html
lawlist
3
daftar hukum benar. Saya tidak percaya Anda sedang mencari pemirsa proses sama sekali (membuat list-processesatau procedtidak relevan). Satu-satunya proses yang Anda pedulikan adalah proses (tunggal) emacs itu sendiri, dan Anda mencoba mencari tahu mengapa itu memanfaatkan begitu banyak waktu dan / atau memori CPU. Untuk itu Anda perlu menggunakan profiler emacs.
phils

Jawaban:

11

Pertanyaan itu ditanyakan pada 2016. Sekarang pada 2019, ada M-x proced:

Mode untuk menampilkan proses sistem dan mengirimkan sinyal kepada mereka.

Prosedur membuat buffer Emacs yang berisi daftar proses sistem saat ini. Anda dapat menggunakan perintah Emacs normal untuk bergerak di buffer ini, dan perintah Prosedur khusus untuk beroperasi pada proses yang tercantum. Lihat proced-modeuntuk memulai.

pengguna1404316
sumber
Perhatikan bahwa Anda mungkin ingin mengaktifkan M-x proced-toggle-auto-updatepada Anda procedpenyangga untuk topperilaku -seperti dengan pembaruan penyangga otomatis (setiap 5 detik secara default).
Pierre Thalamy
9

Selain jawaban lain, poster asli mungkin ingin mempertimbangkan untuk menggunakan fitur profil bawaan : https://www.gnu.org/software/emacs/manual/html_node/elisp/Profiling.html

Untuk mulai membuat profil, ketik M-x profiler-start. Anda dapat memilih profil berdasarkan penggunaan prosesor, penggunaan memori, atau keduanya. Setelah melakukan beberapa pekerjaan, ketik M-x profiler-reportuntuk menampilkan buffer ringkasan untuk setiap sumber daya yang Anda pilih untuk profil. Nama-nama buffer laporan termasuk waktu di mana laporan dihasilkan, sehingga Anda dapat menghasilkan laporan lain nanti tanpa menghapus hasil sebelumnya. Setelah selesai membuat profil, ketikkanM-x profiler-stop (ada overhead kecil yang terkait dengan profiling).

Lihat tautan di atas ke manual untuk detail tambahan mengenai fitur ini.

daftar hukum
sumber
7

Anda mungkin ingin memeriksa list-processes:

list-processesadalah fungsi Lisp interaktif yang dikompilasi dalam ' simple.el'.

(list-processes &optional QUERY-ONLY BUFFER)

Tampilkan daftar semua proses yang merupakan sub-proses Emacs. Jika argumen opsional QUERY-ONLYadalah nihil, hanya proses dengan query-on-exitset bendera yang terdaftar.
Setiap proses yang terdaftar sebagai keluar atau memberi isyarat sebenarnya dihilangkan setelah daftar dibuat.
Argumen opsional BUFFERmenentukan buffer untuk digunakan, bukan " *Process List*". Nilai pengembalian selalu nil.

Fungsi ini hanya mencantumkan proses yang diluncurkan oleh Emacs. Untuk melihat proses lain berjalan pada sistem, gunakan 'list-system-processes '.

Tampaknya kehilangan banyak fitur yang Anda butuhkan, tetapi dengan sedikit pengkodean Anda mungkin mendapatkan hasil yang diinginkan (jika Anda melakukannya, silakan kirim tambalan Anda ke atas, saya sesekali ingin melihat fitur ini di Emacs.) Yang mengatakan, Saya tidak dapat menemukan kandidat siap pakai yang lebih baik untuk masalah Anda.

GergelyPolonkai
sumber
6

Lihatlah helm-top. Ini mencantumkan semua hal yang Anda inginkan, dan memiliki tindakan untuk mengirim sinyal ke proses.

John Kitchin
sumber
5

Saya suka htop dan saya juga menggunakannya di emacs. Namun bagian interaktif tidak berfungsi seperti ini.

(defun htop ()
  (interactive)
  (if (get-buffer "*htop*")
      (switch-to-buffer "*htop*")
    (ansi-term "/bin/bash" "htop")   
    (comint-send-string "*htop*" "htop\n")))
bertfred
sumber