mirror of
https://github.com/SqrtMinusOne/dotfiles.git
synced 2025-12-10 19:23:03 +03:00
50 lines
1.7 KiB
EmacsLisp
50 lines
1.7 KiB
EmacsLisp
;;; -*- lexical-binding: t -*-
|
|
(setq my/emacs-started nil)
|
|
|
|
(add-hook 'emacs-startup-hook
|
|
(lambda ()
|
|
(message "*** Emacs loaded in %s with %d garbage collections."
|
|
(format "%.2f seconds"
|
|
(float-time
|
|
(time-subtract after-init-time before-init-time)))
|
|
gcs-done)
|
|
(setq my/emacs-started t)))
|
|
|
|
(setq use-package-verbose nil)
|
|
|
|
(setq use-package-compute-statistics t)
|
|
|
|
(setq gc-cons-threshold 80000000)
|
|
(setq read-process-output-max (* 1024 1024))
|
|
|
|
(add-hook 'emacs-startup-hook
|
|
(lambda ()
|
|
(if (boundp 'after-focus-change-function)
|
|
(add-function :after after-focus-change-function
|
|
(lambda ()
|
|
(unless (frame-focus-state)
|
|
(garbage-collect))))
|
|
(add-hook 'after-focus-change-function 'garbage-collect))))
|
|
|
|
(defun my/get-ram-usage-async (callback)
|
|
(let* ((temp-buffer (generate-new-buffer "*ps*"))
|
|
(proc (start-process "ps" temp-buffer "ps"
|
|
"-p" (number-to-string (emacs-pid)) "-o" "rss")))
|
|
(set-process-sentinel
|
|
proc
|
|
(lambda (process _msg)
|
|
(when (eq (process-status process) 'exit)
|
|
(let* ((output (with-current-buffer temp-buffer
|
|
(buffer-string)))
|
|
(usage (string-to-number (nth 1 (split-string output "\n")))))
|
|
(ignore-errors
|
|
(funcall callback usage)))
|
|
(kill-buffer temp-buffer))))))
|
|
|
|
(defun my/ram-usage ()
|
|
(interactive)
|
|
(my/get-ram-usage-async
|
|
(lambda (data)
|
|
(message "%f Gb" (/ (float data) 1024 1024)))))
|
|
|
|
(provide 'sqrt-performance)
|