From what I can see the Qbuffer_list_update_hook is called.
- command-execute 865 92%
- call-interactively 865 92%
- funcall-interactively 865 92%
- eval-defun 865 92%
- apply 865 92%
- edebug-eval-defun 865 92%
- eval 865 92%
- progn 865 92%
- message 865 92%
- benchmark-run 865 92%
- let 865 92%
- list 865 92%
- benchmark-elapse 865 92%
- let 865 92%
- ignore 865 92%
- json-parse-string 596 63%
- run-hooks 303 32%
- doom-modeline-update-persp-name 116 12%
- get-current-persp 110 11%
get-frame-persp 96 10%
+ window-persp-set-p 4 0%
#<compiled 0x1594da86eb25> 1 0%
+ doom-modeline-set-selected-window 7 0%
- #<compiled 0x1594da2b4a39> 268 28%
+ spacemacs/useful-buffer-p 245 26%
+ #<lambda 0x85a9e12ee490302> 17 1%
+ replace-buffer-in-windows 21 2%
+ ... 74 7%
I want to share some observations:
1. The hooks are not called initially, I am not sure what triggers them. This makes the json parsing extremely slow(100 times)
2. Even without the hooks, the JSON parsing is slower than the emacs -q native parsing when I am running my setup. This will require additional investigation.
Thanks,