[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [O] Huge performance problems to open some Org files
From: |
Carsten Dominik |
Subject: |
Re: [O] Huge performance problems to open some Org files |
Date: |
Fri, 13 May 2011 12:15:15 +0200 |
On May 13, 2011, at 12:27 AM, Sebastien Vauban wrote:
> Hi Andrew, Vladimir, Nick, Achim, Carsten & al,
>
> Vladimir Alexiev wrote:
>> Sébastien Vauban <address@hidden> writes:
>>> Believe me or not, but C-g has not effect during those 7 seconds. It simply
>>> does not stop anything
>>
>> Sounds like emacs is waiting inside some blocking call, and waits until it
>> times out. Likely a network call. Do you have any tramp/efs/angeftp stuff
>> going on?
>
> This has gotten worse. But, now, I have some proofs about what I experience:
> opening the attached Org file (2 KB) consumes me 191 seconds, yes 191 seconds,
> even when done after the agenda view has been launched -- I mean, all agenda
> files and all Org files have been read..
I would think the only way to sort this out is the following:
1. Try loading the file with emacs -Q
2. Try loading it with
emacs -Q -l minimal.emacs
where the minimal.emacs d does nothing but
make sure that the latest Org is being loaded.
I expect that loading your file under these test will be very fast.
Then bisect your entire Emacs setup to find which part of your
setup is causing this issue. I know you have *a lot* of setup,
but I don't see any other route.
- Carsten
> .
>
> --8<---------------cut here---------------start------------->8---
> | find-file | start |c:/home/sva/Public/tags-opening-it-is-sloooooooooow.org
> | ___ |
> +-> Requiring `org-exp' (already loaded)
> OVERVIEW in c:/home/sva/Public/tags-opening-it-is-sloooooooooow.org
> Checking for library `filladapt'...
> +-> Requiring `filladapt' (already loaded)
> Checking for library `filladapt'... Found
> +-> Requiring `outline-mode-easy-bindings' (already loaded)
> +-> Requiring `bytecomp' (already loaded)
> Checking for library `filladapt'...
> +-> Requiring `filladapt' (already loaded)
> Checking for library `filladapt'... Found
> | find-file | stop | c:/home/sva/Public/tags-opening-it-is-sloooooooooow.org
> | 191.3 |
> --8<---------------cut here---------------end--------------->8---
>
> Note that the variance is 0.1 second, over 3 Emacs restarts! Pretty
> reproducible...
>
> To obtain the above trace, I've added the following bits to my .emacs file:
>
> #+begin_src emacs-lisp
> ;; redefine require to leave a trace of packages being loaded
> (if (not (fboundp 'orig-require))
> (fset 'orig-require (symbol-function 'require))
> (message "The code to redefine `require' should not be loaded
> twice"))
>
> (defvar my/require-depth 0)
>
> (defun require (feature &optional filename noerror)
> "Leave a trace of packages being loaded."
> (cond ((member feature features)
> (message "%sRequiring `%s' (already loaded)"
> (concat (make-string (* 2 my/require-depth) ? )
> "+-> ")
> feature))
> (t
> (message "%sRequiring `%s'"
> (concat (make-string (* 2 my/require-depth) ? )
> "+-> ")
> feature)
> (let ((my/require-depth (+ 1 my/require-depth)))
> (orig-require feature filename noerror))
> (message "%sRequiring `%s'...done"
> (concat (make-string (* 2 my/require-depth) ? )
> "+-> ")
> feature))))
>
> (defvar missing-packages-list nil
> "List of packages that `try-require' can't find.")
>
> ;; attempt to load a feature/library, failing silently
> (defun try-require (feature)
> "Attempt to load a library or module. Return true if the
> library given as argument is successfully loaded. If not, instead
> of an error, just add the package to a list of missing packages."
> (condition-case err
> ;; protected form
> (progn
> (message "Checking for library `%s'..." feature)
> (if (stringp feature)
> (load-library feature)
> (require feature))
> (message "Checking for library `%s'... Found" feature))
> ;; error handler
> (file-error ; condition
> (progn
> (message "Checking for library `%s'... Missing" feature)
> (add-to-list 'missing-packages-list feature 'append))
> nil)))
>
> (defadvice find-file (around my-find-file activate)
> "Open FILENAME and report time spent."
> (let* ((my-filename (ad-get-arg 0))
> (find-file-time-start (float-time)))
> (message (concat "| find-file | start |" my-filename " | ___ |"))
> ad-do-it
> (message "| find-file | stop | %s | %.1f |"
> my-filename
> (- (float-time) find-file-time-start))))
> #+end_src
>
> Trying to profile:
>
> #+begin_src emacs-lisp
> (elp-instrument-package "org")
> (elp-instrument-package "outline")
> (elp-instrument-package "font-lock")
> (elp-instrument-package "flyspell")
> (elp-instrument-package "bytecomp")
> (elp-instrument-package "color-theme")
> (elp-instrument-package "company")
> (elp-instrument-package "custom")
> (elp-instrument-package "files")
> (elp-instrument-package "filladapt")
> (elp-instrument-package "help-fns")
> (elp-instrument-package "ispell")
> (elp-instrument-package "outline-mode-easy-bindings"))
> #+end_src
>
> did not help finding the culprit:
>
> --8<---------------cut here---------------start------------->8---
> custom-declare-variable 1733 0.735
> 0.0004241200
> flyspell-mode 51
> 0.4210000000 0.0082549019
> flyspell-post-command-hook 10
> 0.3759999999 0.0375999999
> custom-initialize-default 33 0.375
> 0.0113636363
> flyspell-word 9
> 0.3609999999 0.0401111111
> outline-back-to-heading 5684
> 0.3430000000 6.03...e-005
> custom-initialize-reset 1699
> 0.3280000000 0.0001930547
> flyspell-mode-on 50 0.281
> 0.0056200000
> ispell-init-process 98 0.265
> 0.0027040816
> flyspell-accept-buffer-local-defs 107 0.251
> 0.0023457943
> ispell-accept-buffer-local-defs 98 0.251
> 0.0025612244
> outline-map-region 47
> 0.2200000000 0.0046808510
> custom-declare-face 133
> 0.2190000000 0.0016466165
> ispell-accept-output 2
> 0.2019999999 0.1009999999
> outline-next-heading 5095
> 0.1720000000 3.37...e-005
> font-lock-set-defaults 580 0.125
> 0.0002155172
> font-lock-add-keywords 226 0.125
> 0.0005530973
> font-lock-compile-keywords 180 0.125
> 0.0006944444
> ispell-buffer-local-words 98 0.125
> 0.0012755102
> ispell-buffer-local-parsing 97
> 0.0939999999 0.0009690721
> color-theme-install-faces 1
> 0.0779999999 0.0779999999
> color-theme-install 1
> 0.0779999999 0.0779999999
> color-theme-leuven 1
> 0.0779999999 0.0779999999
> font-lock-default-fontify-region 24 0.077
> 0.0032083333
> font-lock-fontify-keywords-region 24 0.077
> 0.0032083333
> font-lock-fontify-region 24 0.077
> 0.0032083333
> ispell-check-version 2 0.047
> 0.0235
> ispell-call-process 2 0.047
> 0.0235
> outline-show-heading 240 0.032
> 0.0001333333
> outline-on-heading-p 5750 0.032
> 5.56...e-006
> flyspell-word-search-forward 2 0.032
> 0.016
> custom-handle-keyword 2611 0.032
> 1.22...e-005
> ispell-buffer-local-dict 98 0.032
> 0.0003265306
> flyspell-check-spell-program 50 0.03
> 0.0006
> outline-flag-region 1375 0.016
> 1.16...e-005
> flyspell-get-word 12 0.016
> 0.0013333333
> color-theme-filter 3 0.016
> 0.0053333333
> ispell-get-otherchars 12 0.016
> 0.0013333333
> ispell-start-process 2 0.016
> 0.008
> ispell-internal-change-dictionary 98 0.016
> 0.0001632653
> font-lock-default-fontify-buffer 7 0.015
> 0.0021428571
> font-lock-fontify-buffer 7 0.015
> 0.0021428571
> flyspell-check-pre-word-p 10 0.015
> 0.0015
> outline-invisible-p 98 0.0
> 0.0
> outline-previous-heading 419 0.0
> 0.0
> outline-up-heading 38 0.0
> 0.0
> outline-end-of-heading 359 0.0
> 0.0
> outline-mode 49 0.0
> 0.0
> font-lock-prepend-text-property 59 0.0
> 0.0
> font-lock-update-removed-keyword-alist 1 0.0
> 0.0
> font-lock-mode-internal 101 0.0
> 0.0
> font-lock-extend-region-wholelines 26 0.0
> 0.0
> font-lock-extend-jit-lock-region-after-change 12 0.0
> 0.0
> font-lock-unfontify-buffer 2 0.0
> 0.0
> font-lock-choose-keywords 51 0.0
> 0.0
> font-lock-remove-keywords 225 0.0
> 0.0
> font-lock-mode 208 0.0
> 0.0
> font-lock-unfontify-region 26 0.0
> 0.0
> font-lock-after-unfontify-buffer 2 0.0
> 0.0
> font-lock-default-function 208 0.0
> 0.0
> font-lock-after-fontify-buffer 7 0.0
> 0.0
> font-lock-change-mode 51 0.0
> 0.0
> font-lock-turn-off-thing-lock 2 0.0
> 0.0
> font-lock-extend-region-multiline 26 0.0
> 0.0
> font-lock-eval-keywords 102 0.0
> 0.0
> font-lock-default-unfontify-buffer 2 0.0
> 0.0
> font-lock-compile-keyword 7464 0.0
> 0.0
> font-lock-fontify-syntactically-region 7 0.0
> 0.0
> font-lock-default-unfontify-region 26 0.0
> 0.0
> font-lock-value-in-major-mode 249 0.0
> 0.0
> font-lock-turn-on-thing-lock 99 0.0
> 0.0
> flyspell-word-search-backward 2 0.0
> 0.0
> flyspell-hack-local-variables-hook 48 0.0
> 0.0
> flyspell-check-word-p 10 0.0
> 0.0
> flyspell-delete-all-overlays 1 0.0
> 0.0
> flyspell-kill-ispell-hook 5 0.0
> 0.0
> flyspell-highlight-duplicate-region 1 0.0
> 0.0
> flyspell-after-change-function 12 0.0
> 0.0
> flyspell-delay-commands 49 0.0
> 0.0
> flyspell-pre-command-hook 10 0.0
> 0.0
> flyspell-get-not-casechars 19 0.0
> 0.0
> flyspell-prog-mode 1 0.0
> 0.0
> flyspell-highlight-incorrect-region 1 0.0
> 0.0
> flyspell-mode-off 1 0.0
> 0.0
> flyspell-deplacement-command 196 0.0
> 0.0
> flyspell-delay-command 294 0.0
> 0.0
> flyspell-generic-progmode-verify 8 0.0
> 0.0
> flyspell-deplacement-commands 49 0.0
> 0.0
> flyspell-get-casechars 12 0.0
> 0.0
> flyspell-delete-region-overlays 38 0.0
> 0.0
> flyspell-unhighlight-at 12 0.0
> 0.0
> color-theme-frame-params 1 0.0
> 0.0
> color-theme-alist 2 0.0
> 0.0
> color-theme-spec-compat 448 0.0
> 0.0
> color-theme-variables 1 0.0
> 0.0
> color-theme-plist-delete 8 0.0
> 0.0
> color-theme-install-frame-params 1 0.0
> 0.0
> color-theme-install-variables 1 0.0
> 0.0
> color-theme-faces 1 0.0
> 0.0
> color-theme-alist-reduce 2 0.0
> 0.0
> color-theme-spec-filter 1 0.0
> 0.0
> color-theme-canonic 1 0.0
> 0.0
> custom-handle-all-keywords 82 0.0
> 0.0
> custom-add-link 136 0.0
> 0.0
> custom-add-to-group 2183 0.0
> 0.0
> custom-declare-group 200 0.0
> 0.0
> custom-current-group 25 0.0
> 0.0
> custom-add-version 237 0.0
> 0.0
> custom-initialize-set 1 0.0
> 0.0
> custom-set-default 2 0.0
> 0.0
> custom-add-option 4 0.0
> 0.0
> custom-add-dependencies 2 0.0
> 0.0
> ispell-get-casechars 13 0.0
> 0.0
> ispell-send-string 208 0.0
> 0.0
> ispell-set-spellchecker-params 59 0.0
> 0.0
> ispell-process-status 98 0.0
> 0.0
> ispell-check-minver 8 0.0
> 0.0
> ispell-get-decoded-string 44 0.0
> 0.0
> ispell-parse-output 7 0.0
> 0.0
> ispell-get-ispell-args 2 0.0
> 0.0
> ispell-get-extended-character-mode 99 0.0
> 0.0
> ispell-get-not-casechars 19 0.0
> 0.0
> ispell-filter 9 0.0
> 0.0
> ispell-get-many-otherchars-p 12 0.0
> 0.0
> ispell-get-coding-system 90 0.0
> 0.0
> ispell-decode-string 43 0.0
> 0.0
> ispell-kill-ispell 5 0.0
> 0.0
> --8<---------------cut here---------------end--------------->8---
>
> Any idea in which direction to go?
>
> Environment:
> Org-mode version 7.5 (release_7.5.274.gd6aba.dirty)
> GNU Emacs 23.1.50.1 (i386-mingw-nt5.1.2600) of 2009-10-14 on LENNART-69DE564
> (patched)
> on Windows XP SP3
>
> Best regards,
> Seb
>
> --
> Sébastien Vauban
> <tags-opening-it-is-sloooooooooow.org>
- Carsten