References

History

  • [2025-03-23 Sun 20:30]

DONT |2025-03-23 Sun 20:30|

@user memory-report 결과에 다음과 같은 정보가 있는데, 이 부분 때문에 which-key가 제대로 동작이 안되는 것 같아. which-key 메모리를 초기화 하는 방법을 찾아줘.

29 MiB which-key-replacement-alist

@assistant =which-key=의 메모리를 초기화하려면 다음 명령어를 사용하세요:

(setq which-key-replacement-alist nil)

이 명령어를 실행하면 which-key-replacement-alist 변수를 초기화하여 메모리 사용량을 줄일 수 있습니다.

@user 아래 memory-report에서 위와 마찬가지로 메모리를 정리할 수 있는 부분을 파악해서 해지하는 방법을 알려줘

Estimated Emacs Memory Usage

88 MiB Overall Object Memory Usage 73 MiB Reserved (But Unused) Object Memory 24 MiB Memory Used By Global Variables 15 MiB Memory Used By Symbol Plists 4.2 MiB Total Buffer Memory Usage 3.3 KiB Total Image Cache Size

Object Storage

31 MiB Conses 29 MiB Strings 22 MiB Vectors 5.2 MiB Symbols 383 KiB Intervals 46 KiB Floats 23 KiB Buffer-Objects

Largest Buffers

3 MiB temp-info-look 242 KiB My:AI Chat 169 KiB 전쟁 원자폭탄 인공지능 - 페러다임 쉬프트 시대¶ 158 KiB ten-TAGS 147 KiB which-key.el.gz 121 KiB Messages 66 KiB org-src-fontification:emacs-lisp-mode 56 KiB Memory Report 36 KiB doom 36 KiB scratch 35 KiB which-key 35 KiB helpful variable: which-key-replacement-alist 34 KiB Async-native-compile-log 30 KiB Native-compile-Log 25 KiB eldoc 20 KiB corfu 5.4 KiB code-conversion-work 5 KiB Minibuf-1 3 KiB string-pixel-width 2.2 KiB Echo Area 1

Largest Variables

2.4 MiB load-history 1.4 MiB persp-buffer-props-hash 1.2 MiB face—new-frame-defaults 1 MiB elfeed-db 1 MiB ucs-normalize-hangul-translation-alist 975 KiB org-glossary—terms-cache 813 KiB nerd-icons/mdicon-alist 810 KiB elfeed-db-entries 663 KiB easy-menu-converted-items-table 480 KiB minor-mode-map-alist 452 KiB annalist—tomes 451 KiB modus-themes-faces 370 KiB yas—tables 333 KiB tags-completion-table 318 KiB straight—build-cache 261 KiB general-keybindings 231 KiB recentf-list 223 KiB nerd-icons/faicon-alist 219 KiB current-load-list 215 KiB elfeed-db-index

@assistant 메모리 사용량을 줄이기 위해 다음 변수들을 초기화할 수 있습니다. 각 변수에 대해 초기화 명령어는 다음과 같습니다:

  1. load-history

       (setq load-history nil)
  2. persp-buffer-props-hash

       (setq persp-buffer-props-hash (make-hash-table :test 'equal))
  3. face—new-frame-defaults

       (setq face--new-frame-defaults nil)
  4. elfeed-db

       (elfeed-db-clear)
  5. ucs-normalize-hangul-translation-alist

       (setq ucs-normalize-hangul-translation-alist nil)
  6. org-glossary—terms-cache

       (setq org-glossary--terms-cache nil)
  7. nerd-icons/mdicon-alist

       (setq nerd-icons/mdicon-alist nil)
  8. elfeed-db-entries

       (elfeed-db-clear)
  9. easy-menu-converted-items-table

       (setq easy-menu-converted-items-table nil)
  10. minor-mode-map-alist

        (setq minor-mode-map-alist nil)
  11. annalist—tomes

        (setq annalist--tomes nil)
  12. modus-themes-faces

        (setq modus-themes-faces nil)
  13. yas—tables

        (yas-reload-all)
  14. tags-completion-table

        (setq tags-completion-table nil)
  15. straight—build-cache

        (setq straight--build-cache nil)
  16. general-keybindings

        (setq general-keybindings nil)
  17. recentf-list

        (recentf-cleanup)
  18. nerd-icons/faicon-alist

        (setq nerd-icons/faicon-alist nil)
  19. current-load-list

        (setq current-load-list nil)
  20. elfeed-db-index

        (elfeed-db-clear)

이 명령어들을 Emacs Lisp 코드로 실행하면 해당 변수들의 메모리 사용량을 초기화할 수 있습니다.

@user 위와 같은 메모리를 초기화하면 혹시 사용 상 문제가 생길 수 있는 부분은?

@assistant 메모리를 초기화하면 다음과 같은 문제가 발생할 수 있습니다:

  1. 기능 손실: 초기화된 변수들이 특정 기능을 담당하고 있다면, 해당 기능이 제대로 작동하지 않을 수 있습니다. 예를 들어, =load-history=를 초기화하면 패키지 로드 기록이 사라져서 패키지 관리에서 문제가 발생할 수 있습니다.

  2. 데이터 손실: elfeed-db=나 =recentf-list 같은 변수를 초기화하면 사용자가 저장한 데이터(예: RSS 피드, 최근 파일 목록)가 사라질 수 있습니다.

  3. 성능 저하: 일부 변수는 초기화 후 다시 채워져야 하므로, 초기화 후 다시 로드하는 과정에서 성능 저하가 발생할 수 있습니다. 예를 들어, =yas—tables=를 초기화하면 YASnippet이 다시 로드되어야 합니다.

  4. 설정 초기화: general-keybindings=나 =minor-mode-map-alist 같은 변수를 초기화하면 사용자 정의 키 바인딩이나 마이너 모드 설정이 초기화되어 사용자 환경이 변경될 수 있습니다.

  5. 테마 변경: =modus-themes-faces=를 초기화하면 현재 적용된 테마가 변경될 수 있습니다.

따라서 메모리를 초기화하기 전에 해당 변수들이 어떤 기능을 담당하는지 확인하고, 필요한 경우 백업을 취한 후 초기화하는 것이 좋습니다.

@user load-history에 기록되는 내용에 대해서 알려줘

@assistant load-history는 Emacs에서 로드된 파일과 그 파일에서 정의된 함수, 변수 등의 정보를 기록하는 변수입니다. 이 변수는 다음과 같은 정보를 포함합니다:

  1. 파일 경로: 로드된 파일의 전체 경로.
  2. 정의된 함수: 파일에서 정의된 함수들의 이름.
  3. 정의된 변수: 파일에서 정의된 변수들의 이름.
  4. 로드 시간: 파일이 로드된 시간.
  5. 로드된 기능: 파일에서 제공하는 기능이나 패키지 정보.

이 정보는 패키지 관리나 디버깅 시 유용하게 사용됩니다. 예를 들어, 어떤 파일이 특정 함수를 정의했는지 확인하거나, 로드된 파일의 순서를 추적할 때 사용할 수 있습니다.

@user

dd

 
(setq which-key-replacement-alist nil)
 
  1. load-history

       (setq load-history nil)
  2. persp-buffer-props-hash

       (setq persp-buffer-props-hash (make-hash-table :test 'equal))
  3. ucs-normalize-hangul-translation-alist

       (setq ucs-normalize-hangul-translation-alist nil)
  4. org-glossary—terms-cache

       (setq org-glossary--terms-cache nil)