Emacs có trình xem quy trình (trình quản lý tài nguyên) hoặc tương đương không?


14

Đôi khi emacs sẽ đạt 100% sử dụng cpu. Rõ ràng khi điều này xảy ra có một vấn đề với một quá trình chạy trốn.

Chỉ tự hỏi nếu có một cách để xem tất cả các quy trình đang chạy trong emacs?

Kiểu như unix htop, trình theo dõi quá trình hệ thống tương tác & người xem ... htop


3
list-processes?
npostavs

@npostavs cảm ơn. danh sách các quy trình là tốt. Nhưng tôi tự hỏi liệu có thứ gì cung cấp thêm thông tin về tài nguyên bao gồm sử dụng bộ nhớ và cpu không
orion

2
Điều duy nhất tôi có thể nghĩ đến là hồ sơ: gnu.org/software/emacs/manual/html_node/elisp/Profiling.html
luật

3
danh sách luật là đúng. Tôi không tin rằng bạn đang tìm kiếm một người xem quá trình (làm list-processeshoặc procedkhông liên quan). Quá trình duy nhất bạn quan tâm là quá trình (đơn) emacs tự xử lý và bạn đang cố gắng tìm hiểu lý do tại sao nó sử dụng quá nhiều thời gian và / hoặc bộ nhớ CPU. Cho rằng bạn cần phải sử dụng hồ sơ emacs.
phils

Câu trả lời:


11

Câu hỏi đã được hỏi vào năm 2016. Bây giờ vào năm 2019, đã tồn tại M-x proced:

Chế độ hiển thị các quy trình hệ thống và gửi tín hiệu cho chúng.

Thủ tục tạo bộ đệm Emacs chứa danh sách các quy trình hệ thống hiện tại. Bạn có thể sử dụng các lệnh Emacs bình thường để di chuyển trong bộ đệm này và các lệnh Thủ tục đặc biệt để hoạt động trên các quy trình được liệt kê. Xem proced-modeđể bắt đầu.


Lưu ý rằng bạn có thể muốn bật bộ đệm M-x proced-toggle-auto-updatecủa mình procedcho tophành vi tương tự với cập nhật bộ đệm tự động (cứ sau 5 giây theo mặc định).
Pierre Thalamy

9

Ngoài các câu trả lời khác, người đăng ban đầu có thể muốn xem xét sử dụng tính năng lược tả tích hợp : https://www.gnu.org/software/emacs/manual/html_node/elisp/Profiling.html

Để bắt đầu hồ sơ, gõ M-x profiler-start. Bạn có thể chọn cấu hình bằng cách sử dụng bộ xử lý, sử dụng bộ nhớ hoặc cả hai. Sau khi thực hiện một số công việc, hãy nhập M-x profiler-reportđể hiển thị bộ đệm tóm tắt cho từng tài nguyên mà bạn đã chọn để cấu hình. Tên của bộ đệm báo cáo bao gồm thời gian tạo báo cáo, do đó bạn có thể tạo báo cáo khác sau đó mà không xóa kết quả trước đó. Khi bạn đã hoàn thành hồ sơ, hãy gõ M-x profiler-stop(có một chi phí nhỏ liên quan đến hồ sơ).

Xem liên kết ở trên với hướng dẫn để biết thêm chi tiết về tính năng này.


7

Bạn có thể muốn kiểm tra list-processes:

list-processeslà một hàm Lisp được biên dịch tương tác trong ' simple.el'.

(list-processes &optional QUERY-ONLY BUFFER)

Hiển thị danh sách tất cả các quy trình là các quy trình phụ của Emacs. Nếu đối số tùy chọn QUERY-ONLYlà không phải, chỉ các quy trình với bộ query-on-exitcờ được liệt kê.
Bất kỳ quá trình được liệt kê là thoát hoặc báo hiệu thực sự được loại bỏ sau khi danh sách được thực hiện.
Đối số tùy chọn BUFFERchỉ định bộ đệm để sử dụng, thay vì " *Process List*". Giá trị trả về luôn nil.

Hàm này chỉ liệt kê các quy trình được Emacs khởi chạy. Để xem các quy trình khác đang chạy trên hệ thống, hãy sử dụng ' list-system-processes'.

Nó dường như bỏ lỡ rất nhiều tính năng bạn cần, nhưng với một chút mã hóa, bạn có thể nhận được kết quả mong muốn (nếu bạn làm như vậy, vui lòng gửi các bản vá của bạn ngược dòng, thỉnh thoảng tôi muốn thấy tính năng này trong Emacs.) Tôi không thể tìm thấy bất kỳ ứng cử viên làm sẵn tốt hơn cho vấn đề của bạn.


6

Kiểm tra helm-top. Nó liệt kê tất cả những điều bạn muốn và có hành động để gửi tín hiệu đến các quy trình.


5

Tôi thích htop và vì vậy tôi cũng sử dụng nó trong emacs. Tuy nhiên, phần tương tác không hoạt động theo cách này.

(defun htop ()
  (interactive)
  (if (get-buffer "*htop*")
      (switch-to-buffer "*htop*")
    (ansi-term "/bin/bash" "htop")   
    (comint-send-string "*htop*" "htop\n")))
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.