2023年4月17日月曜日

emacsでプロファイルを取得する方法

emacsでプロファイルを取得する方法

概要

何か処理が重いときや拡張機能が重いときの原因調査に使えます

環境

  • Ubuntu 18.04
  • emacs 27.1

プロファイルスタート

  • M-x profiler-start

何か処理をする

重い処理を実際に実行します

レポート

  • M-x profiler-report
- redisplay_internal (C function)                          15,549,601  54%
 - jit-lock-function                                       15,495,209  54%
  - jit-lock-fontify-now                                   15,495,209  54%
   - jit-lock--run-functions                               15,418,713  53%
    - run-hook-wrapped                                     15,410,441  53%
     - #<compiled 0x1590a090a5f5>                          15,410,441  53%
      - font-lock-fontify-region                           15,410,441  53%
       - font-lock-default-fontify-region                  15,409,385  53%
        - font-lock-fontify-keywords-region                15,001,161  52%
         + markdown-match-italic                           12,735,781  44%
         + markdown-fontify-tables                          1,001,560   3%
         + #<compiled 0x1fe2f604f305>                         235,488   0%
         + markdown-fontify-plain-uris                         53,746   0%
         + markdown-fontify-angle-uris                         53,121   0%
         + markdown-match-html-tag                             49,995   0%
         + markdown-fontify-inline-links                       45,418   0%
         + markdown-match-includes                             45,308   0%
         + markdown-fontify-reference-links                    45,226   0%
         + markdown-match-leanpub-sections                     38,898   0%
         + markdown-fontify-sub-superscripts                   38,176   0%
         + markdown-match-declarative-metadata                 37,120   0%
         + markdown-match-inline-attributes                    36,992   0%
         + markdown-match-bold                                 36,864   0%
         + markdown-match-code                                  8,424   0%
        + font-lock-fontify-syntactically-region               59,744   0%
        + font-lock-unfontify-region                            9,328   0%

こんな感じで表示されます
パーセント表示が急激に増えている部分が重くなっている処理になります

プロファイルストップ

  • M-x profiler-stop

0 件のコメント:

コメントを投稿