Hello,
im using orgmode and emacs on Windows.
When starting emacs, orgmode is extremely slow.
Pushing headlines arround, opening headlines and moving columns in
org-tables is a pain.
When i archive a big section in my org file through C-c C-x a and
unarchive it afterwards, then org gets really fast again.
just to show the issue i added the archiving as a profiler report here:
when doing archive first time:
- command-execute 648 60%
- call-interactively 648 60%
- org-toggle-archive-tag 637 59%
- outline-hide-subtree 634 58%
- outline-flag-subtree 634 58%
- outline-end-of-subtree 634 58%
outline-next-heading 186 17%
org-outline-level 65 6%
+ org-toggle-tag 2 0%
+ byte-code 6 0%
+ save-buffer 5 0%
+ timer-event-handler 397 36%
+ ... 33 3%
after orgmode gets fast:
- command-execute 12 38%
- call-interactively 12 38%
- org-toggle-archive-tag 6 19%
- outline-hide-subtree 6 19%
- outline-flag-subtree 6 19%
- outline-end-of-subtree 6 19%
outline-next-heading 4 12%
+ save-buffer 4 12%
+ byte-code 2 6%
+ timer-event-handler 12 38%
+ ... 7 22%
here an example of opening all headlines in one of my bigger org files
before and after the archiving / unarchiving:
before:
- command-execute 1467 99%
- call-interactively 1467 99%
- org-cycle 1452 98%
- org-cycle-internal-local 1446 97%
- outline-show-children 1144 77%
- outline-end-of-subtree 725 49%
outline-next-heading 220 14%
org-outline-level 89 6%
- outline-map-region 419 28%
outline-next-heading 149 10%
+ #<compiled 0x12ae289> 149 10%
+ run-hook-with-args 190 12%
org-end-of-subtree 3 0%
org-show-entry 1 0%
+ run-hook-with-args-until-success 6 0%
+ byte-code 11 0%
+ minibuffer-complete 4 0%
+ ... 9 0%
After:
- command-execute 208 96%
- call-interactively 208 96%
- org-cycle 202 93%
- org-cycle-internal-local 194 89%
- run-hook-with-args 184 85%
- org-cycle-hide-drawers 158 73%
+ org-element-at-point 38 17%
org-flag-drawer 14 6%
org-end-of-subtree 2 0%
+ org-optimize-window-after-visibility-change 5 2%
+ org-cycle-hide-archived-subtrees 4 1%
+ org-cycle-show-empty-lines 3 1%
+ outline-show-children 8 3%
org-end-of-subtree 2 0%
+ run-hook-with-args-until-success 8 3%
+ byte-code 6 2%
+ ... 8 3%
It is at the moment easy for me to do the archiving / unarchiving once
to get orgmode fast again but i dont understand what is wrong.
Does anybody have an idea?
Every help is appreciated a lot.
Thanks,
Michael
------------------------------------------------------------------------
Emacs : GNU Emacs 24.4.1 (i686-pc-mingw32)
of 2014-10-24 on LEG570
Package: Org-mode version 8.3.2 (8.3.2-10-g00dacd-elpa @
c:/Users/Michael/AppData/Roaming/.emacs.d/elpa/org-20151005/)
current state:
==============
(setq
org-ctrl-c-ctrl-c-hook '(org-babel-hash-at-point
org-babel-execute-safely-maybe)
org-stuck-projects '("+2DO/+WARTEN" nil nil "+#A/+#B/+#C")
org-agenda-sticky t
org-agenda-window-setup 'current-window
org-tab-first-hook '(org-hide-block-toggle-maybe
org-babel-hide-result-toggle-maybe
org-babel-header-arg-expand)
org-archive-hook '(org-attach-archive-delete-maybe)
org-refile-targets '((org-agenda-files :maxlevel . 24))
org-cycle-hook '(org-cycle-hide-archived-subtrees
org-cycle-hide-drawers
org-cycle-show-empty-lines
org-optimize-window-after-visibility-change)
org-agenda-custom-commands '(("x" "Nur Kalender ohne Aufgaben"
agenda ""
((org-agenda-span 80)
(org-deadline-warning-days 1)
(org-agenda-include-diary t)
(org-agenda-entry-types
(quote (:timestamp :sexp)))
(org-agenda-files
(quote
("C:\\Users\\Michael\\Documents\\org\\privat.org"
"C:\\Users\\Michael\\Documents\\org\\dienst.org"
"C:\\Users\\Michael\\Documents\\org\\work.org")
)
)
)
("C:\\Users\\Michael\\Documents\\org\\export\\kalender.txt")
)
("w" "Agenda Work" agenda ""
((org-agenda-files
(quote
("C:\\Users\\Michael\\Documents\\org\\work.org"
"C:\\Users\\Michael\\Documents\\org\\info-work.org")
)
)
(org-agenda-span 1)
(org-agenda-include-diary nil)
(org-deadline-warning-days 4))
)
("p" "Agenda Privat" agenda ""
((org-agenda-files
(quote
("C:\\Users\\Michael\\Documents\\org\\privat.org"
"C:\\Users\\Michael\\Documents\\org\\dienst.org"
"C:\\Users\\Michael\\Documents\\org\\info-privat.org")
)
)
(org-agenda-span 1)
(org-deadline-warning-days 12)
(org-agenda-include-diary t))
("C:\\Users\\Michael\\Documents\\org\\export\\privat.txt")
)
("k" "kombinierte Ansicht"
((agenda ""
((org-agenda-overriding-header
"Kalender")
(org-agenda-span 1)
(org-agenda-entry-types
(quote (:timestamp :sexp)))
(org-agenda-tag-filter-preset
(quote nil))
(org-agenda-include-diary t))
)
(agenda ""
((org-agenda-overriding-header
"Aufgaben Arbeit")
(org-agenda-entry-types
(quote
(:deadline :scheduled))
)
(org-deadline-warning-days 1)
(org-agenda-files
(quote
("C:\\Users\\Michael\\Documents\\org\\work.org"
"C:\\Users\\Michael\\Documents\\org\\info-work.org")
)
)
(org-agenda-span 1)
(org-agenda-sorting-strategy
(quote
(priority-down deadline-up))
)
)
)
)
nil)
("2" "Aufgabenliste Privat"
alltodo ""
((org-agenda-overriding-header
"Aufgaben")
(org-agenda-sorting-strategy
(quote (scheduled-up)))
(org-agenda-files
(quote
("C:\\Users\\Michael\\Documents\\org\\dienst.org"
"C:\\Users\\Michael\\Documents\\org\\privat.org"
"C:\\Users\\Michael\\Documents\\org\\info-privat.org")
)
)
(org-agenda-prefix-format
"[] %i %-12:c")
(org-agenda-skip-function
(quote
(org-agenda-skip-entry-if
(quote notscheduled))
)
)
)
("C:\\Users\\Michael\\Documents\\org\\export\\Aufgaben.txt")
)
("d" "Dienst" alltodo ""
((org-agenda-files
(quote
("C:\\Users\\Michael\\Documents\\org\\dienst.org")
)
)
(org-agenda-sorting-strategy
(quote
(todo-state-down timestamp-up)
)
)
(org-agenda-prefix-format "%b"))
("C:\\Users\\Michael\\Documents\\org\\export\\dienst.txt")
)
("c" "Tageskalender" agenda* ""
((org-agenda-overriding-header
"Kalender")
(org-agenda-span 1)
(org-agenda-files
(quote
("C:\\Users\\Michael\\Documents\\org\\privat.org"
"C:\\Users\\Michael\\Documents\\org\\work.org"
"C:\\Users\\Michael\\Documents\\org\\dienst.org")
)
)
(org-agenda-entry-types
(quote (:timestamp :sexp)))
)
)
("A" "Analyse" agenda ""
((org-agenda-overriding-header
"Analyse")
(org-agenda-tag-filter-preset
(quote ("+Analyse")))
)
)
)
org-agenda-before-write-hook '(org-agenda-add-entry-text)
org-speed-command-hook '(org-speed-command-default-hook
org-babel-speed-command-hook)
org-babel-pre-tangle-hook '(save-buffer)
org-occur-hook '(org-first-headline-recenter)
org-after-tags-change-hook '(org-expiry-insert-created)
org-agenda-text-search-extra-files '(agenda-archives
"C:/Users/Michael/Documents/org/dienst.org_archive"
"C:/Users/Michael/Documents/org/info-privat.org_archive"
"C:/Users/Michael/Documents/org/info-work.org_archive"
"C:/Users/Michael/Documents/org/privat.org_archive"
"C:/Users/Michael/Documents/org/work.org_archive")
org-insert-heading-hook '(org-expiry-insert-created)
org-log-done 'time
org-clock-out-remove-zero-time-clocks t
org-metaup-hook '(org-babel-load-in-session-maybe)
org-confirm-elisp-link-function 'yes-or-no-p
org-catch-invisible-edits 'error
org-hide-leading-stars t
org-default-notes-file "C:/Users/Michael/Documents/org/notes.org"
org-expiry-inactive-timestamps t
org-refile-use-outline-path 'file
org-clock-out-hook '(org-clock-remove-empty-clock-drawer)
org-mode-hook '(#[nil "\300\301\302\303\304$\207"
[org-add-hook change-major-mode-hook
org-show-block-all append local]
5]
#[nil "\300\301\302\303\304$\207"
[org-add-hook change-major-mode-hook
org-babel-show-result-all append local]
5]
org-babel-result-hide-spec
org-babel-hide-all-hashes)
org-time-clocksum-format '(:hours "%d" :require-hours t
:minutes ":%02d" :require-minutes t)
org-expiry-handler-function 'org-toggle-archive-tag
org-clock-into-drawer "CLOCK"
org-tags-exclude-from-inheritance '("@telefon" "@mail"
"@unterwegs" "PROJEKT")
org-directory "C:/Users/Michael/Documents/org/"
org-from-is-user-regexp nil
org-remove-highlights-with-change nil
org-metadown-hook '(org-babel-pop-to-session-maybe)
org-todo-keywords '((type "2DO(t)" "WARTEN(w)" "|"
"ERLEDIGT(d)" "ABGEBROCHEN(c)")
)
org-agenda-files '("c:/Users/Michael/Documents/org/work.org"
"c:/Users/Michael/Documents/org/dienst.org"
"c:/Users/Michael/Documents/org/info-work.org"
"c:/Users/Michael/Documents/org/info-privat.org"
"c:/Users/Michael/Documents/org/privat.org")
org-clock-report-include-clocking-task t
org-src-mode-hook '(org-src-babel-configure-edit-buffer
org-src-mode-configure-edit-buffer)
org-after-todo-state-change-hook '(org-clock-out-if-current
org-expiry-insert-created)
org-confirm-shell-link-function 'yes-or-no-p
)