Samuel Wales <samolog...@gmail.com> writes: > thank you for fixing. > > canonical is always what i want, except for occur-tree. > > i did profiler-start then went to org file a few times to average out > the results. did i use the correct profiler?
You did. > > command-execute 60148 99% > - call-interactively 60148 99% > - org-agenda-switch-to 59299 98% > - org-show-context 59299 98% > - org-show-set-visibility 59299 98% > - show-children 59170 97% > - outline-end-of-subtree 35938 59% > outline-next-heading 9399 15% > org-outline-level 4047 6% > - outline-map-region 23168 38% > + #<compiled 0xfc19ab> 9558 15% > outline-next-heading 7399 12% > + org-up-heading-safe 117 0% > + org-show-entry 4 0% > + org-flag-heading 4 0% `show-children' is the culprit. Could you evaluate the following function and time it again? (defun show-children (&optional level) (save-excursion (org-back-to-heading t) (let* ((current-level (funcall outline-level)) (level (if level (+ (prefix-numeric-value level) current-level) (save-excursion (outline-next-heading) (if (eobp) current-level (funcall outline-level)))))) (org-map-region (lambda () (when (<= (funcall outline-level) level) (outline-flag-region (if (bobp) (point) (1- (point))) (line-end-position) nil))) (point) (org-end-of-subtree t t))))) Thank you. Regards,