Skip to content

Instantly share code, notes, and snippets.

@hitode909
Created December 23, 2011 06:12
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save hitode909/1513345 to your computer and use it in GitHub Desktop.
Save hitode909/1513345 to your computer and use it in GitHub Desktop.
suggest-restart.el
;; suggest-restart.el
;; Emacsのメモリ使用量をチェックして,上限を越えていたら再起動をおすすめする
;; デフォルト設定では閾値は500MBを越えているかを,600秒ごとにチェック
;; 変えたければsuggest-restart:threshold,suggest-restart:intervalを変える
;; (suggest-restart t) で開始
(require 'deferred)
(defvar suggest-restart:threshold 500000)
(defvar suggest-restart:interval 600)
(defvar suggest-restart:timer nil)
(defun suggest-restart:observe ()
(deferred:$
(deferred:process "ps" "-p" (format "%d" (emacs-pid)) "-o" "rss")
(deferred:nextc it
(lambda (res)
(when (> (string-to-number (car (cdr (split-string res "\n")))) suggest-restart:threshold)
(message "そろそろ再起動しましょう"))
))))
(defun suggest-restart (enable)
(if (and enable suggest-restart:timer)
(suggest-restart nil))
(if enable
(setq suggest-restart:timer (run-with-timer
suggest-restart:interval
suggest-restart:interval
'suggest-restart:observe))
(when suggest-restart:timer
(cancel-timer suggest-restart:timer)
(setq suggest-restart:timer nil))))
(provide 'suggest-restart)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment