Чи має emacs переглядач процесів (менеджер ресурсів) або аналогічний?


14

Іноді emacs потрапляє на 100% використання процесора. Очевидно, що коли це трапляється, виникає проблема із втеченим процесом.

Просто цікаво, чи є спосіб переглянути всі запущені процеси в emacs?

Начебто Unix htop, монітор інтерактивної системи та переглядач ... htop


3
list-processes?
npostavs

@npostavs спасибі список-процеси хороші. Але мені цікаво, чи є щось, що надає більше інформації про ресурси, включаючи пам’ять та використання процесора
orion

2
Єдине, про що я можу придумати, - це профілювання: gnu.org/software/emacs/manual/html_node/elisp/Profiling.html
законник

3
правовий список прав. Я не вірю, що ви взагалі шукаєте глядача процесів (роблячи це list-processesабо procedнеактуально). Єдиний процес, який вас хвилює, - це сам процес (emacs), і ви намагаєтесь з’ясувати, чому він використовує стільки часу та / або пам'яті процесора. Для цього вам потрібно скористатися emacs-профілером.
phils

Відповіді:


11

Питання було задано у 2016 році. Зараз у 2019 році існує M-x proced:

Режим відображення системних процесів та передачі на них сигналів.

Процедура створює буфер Emacs, що містить перелік поточних системних процесів. Ви можете використовувати звичайні команди Emacs для переміщення в цьому буфері, а також спеціальні команди Procedure для роботи над перерахованими процесами. Дивіться proced-modeдля початку.


Зауважте, що ви, можливо, захочете ввімкнути M-x proced-toggle-auto-updateсвій procedбуфер для topподібної поведінки з автоматичним оновленням буфера (кожні 5 секунд за замовчуванням).
П’єр Таламі

10

Окрім інших відповідей, оригінальний плакат може розглянути можливість використання вбудованої функції профілювання : 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є інтерактивно складеною функцією Lisp в ' simple.el'.

(list-processes &optional QUERY-ONLY BUFFER)

Відобразить список усіх процесів, які є підпроцесами Emacs. Якщо необов'язковий аргумент QUERY-ONLYне є нульовим, 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")))
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.