O emacs possui um visualizador de processos (gerenciador de recursos) ou equivalente?

14

Ocasionalmente, o emacs atinge 100% de uso da CPU. Obviamente, quando isso ocorre, há um problema com um processo descontrolado.

Imaginando se existe uma maneira de visualizar todos os processos em execução no emacs?

Como o unix htop, o monitor e o visualizador de processos do sistema interativo ... htop

orion
fonte
3
list-processes?
npostavs
@npostavs thanks. lista de processos é bom. Mas eu estou querendo saber se há algo que fornece mais informações sobre os recursos, incluindo memória e uso da CPU
orion
2
A única coisa que posso pensar é profiling: gnu.org/software/emacs/manual/html_node/elisp/Profiling.html
lawlist
3
Lawlist está certo. Não acredito que você esteja procurando um visualizador de processos (tornando list-processesou procedirrelevante). O único processo de seu interesse é o processo (único) do emacs, e você está tentando descobrir por que ele está utilizando tanto tempo de CPU e / ou memória. Para isso, você precisa usar o emacs profiler.
phils

Respostas:

11

A pergunta foi feita em 2016. Agora em 2019, existe M-x proced:

Modo para exibir os processos do sistema e enviar sinais para eles.

Procedimento cria um buffer Emacs contendo uma lista dos processos atuais do sistema. Você pode usar os comandos normais do Emacs para se movimentar nesse buffer e comandos especiais de Procedimentos para operar nos processos listados. Veja proced-modepara começar.

user1404316
fonte
Observe que você pode habilitar M-x proced-toggle-auto-updateno seu procedbuffer um topcomportamento semelhante à atualização automática do buffer (a cada 5 segundos por padrão).
Pierre Thalamy 12/03/19
9

Além das outras respostas, o pôster original pode considerar o uso do recurso de criação de perfil incorporado: https://www.gnu.org/software/emacs/manual/html_node/elisp/Profiling.html

Para iniciar a criação de perfil, digite M-x profiler-start. Você pode optar por criar um perfil por uso do processador, uso de memória ou ambos. Depois de fazer algum trabalho, digite M-x profiler-reportpara exibir um buffer de resumo para cada recurso que você escolheu criar o perfil. Os nomes dos buffers de relatório incluem os horários em que os relatórios foram gerados, para que você possa gerar outro relatório posteriormente sem apagar os resultados anteriores. Quando você terminar a criação de perfil, digite M-x profiler-stop(há uma pequena sobrecarga associada à criação de perfil).

Consulte o link acima para o manual para obter detalhes adicionais sobre esse recurso.

lista de leis
fonte
7

Você pode querer verificar list-processes:

list-processesé uma função Lisp compilada interativa em ' simple.el'.

(list-processes &optional QUERY-ONLY BUFFER)

Exiba uma lista de todos os processos que são subprocessos do Emacs. Se o argumento opcional QUERY-ONLYfor nulo, apenas os processos com o query-on-exitconjunto de sinalizadores serão listados.
Qualquer processo listado como encerrado ou sinalizado é realmente eliminado após a listagem ser feita.
O argumento opcional BUFFERespecifica um buffer a ser usado, em vez de " *Process List*". O valor de retorno é sempre nil.

Esta função lista apenas os processos que foram iniciados pelo Emacs. Para ver outros processos em execução no sistema, use ' list-system-processes'.

Parece que faltam muitos recursos de que você precisa, mas com um pouco de codificação você pode obter os resultados desejados (se você fizer isso, envie seus patches para cima, eu ocasionalmente gostaria de ver esse recurso no Emacs.) Não encontrei nenhum candidato pronto para o seu problema.

GergelyPolonkai
fonte
6

Confira o capacete. Ele lista todas as coisas que você deseja e possui ações para enviar sinais para os processos.

John Kitchin
fonte
5

Eu gosto do htop e também o uso no emacs. No entanto, a parte interativa não funciona dessa maneira.

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