[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Orgmode] Speeding up agenda display
From: |
Andrew J. Korty |
Subject: |
Re: [Orgmode] Speeding up agenda display |
Date: |
Wed, 30 Dec 2009 14:40:46 -0500 |
On Dec 30, 2009, at 14:20 , Carsten Dominik wrote:
> could you please also instrument your ajk/ functions for profiling and
> repeat the experiment? And show the code of all these functions, not
> only some (I am missing for example `ajk/org-agenda-skip-if-due-
> soon'....
Yes to both -- see below for corrected listings of code and profiling results.
> Also:
>
> - Are you using property inheritance?
> - Are you relying on tag inheritance to check for @yard and @home?
No to both.
> - Are you using the latest version of Org-mode?
I'm using 6.33.
Btw, the single org file from which the agenda is generated contains 323
headlines in the TODO state and 12,227 lines total.
Thanks,
ajk
(setq org-agenda-custom-commands
'(("o" "Due at Office" agenda ""
((org-agenda-skip-function
'(or (org-agenda-skip-entry-if '(notdeadline))
(ajk/org-agenda-skip-if-not-due-soon)
(ajk/org-agenda-skip-if-tagged-for-home)))))))
(defun ajk/org-skip-position ()
(or (save-excursion
(outline-next-heading)
(point))
(point-max)))
(defun ajk/org-agenda-skip-if-due-soon ()
(and (let ((time (org-entry-get nil "DEADLINE"))) ; not due or not due soon
(and time
(org-deadline-close time)))
(ajk/org-skip-position)))
(defun ajk/org-agenda-skip-if-not-due-soon ()
(unless (ajk/org-agenda-skip-if-due-soon)
(ajk/org-skip-position)))
(defun ajk/org-agenda-skip-if-tagged-for-home ()
(org-back-to-heading t)
(let ((tags (org-get-tags)))
(if (or (member "@home" tags)
(member "@yard" tags))
(ajk/org-skip-position))))
org-agenda 1
1.997575 1.997575
org-let 1
1.3057590000 1.3057590000
org-agenda-list 1
1.305747 1.305747
org-agenda-get-day-entries 1
1.279215 1.279215
ajk/org-agenda-skip-if-not-due-soon 416
1.0349629999 0.0024878918
ajk/org-agenda-skip-if-due-soon 416
0.9751669999 0.0023441514
org-entry-get 422
0.9655619999 0.0022880616
org-entry-properties 416
0.9618369999 0.0023121081
org-get-tags-at 418
0.6982910000 0.0016705526
org-agenda-get-restriction-and-command 1
0.691773 0.691773
org-up-heading-safe 1055
0.6649149999 0.0006302511
org-agenda-get-scheduled 1
0.6341589999 0.6341589999
org-agenda-get-deadlines 1
0.5069330000 0.5069330000
org-agenda-skip-entry-if 416
0.1385249999 0.0003329927
org-agenda-skip-if 416
0.1372300000 0.0003298798
org-agenda-get-timestamps 1
0.134207 0.134207
org-back-to-heading 2439
0.0887650000 3.639...e-05
ajk/org-skip-position 419
0.0583169999 0.0001391813
org-prepare-agenda 1
0.023446 0.023446
org-prepare-agenda-buffers 1
0.022988 0.022988
org-refresh-category-properties 1
0.012406 0.012406
org-outline-level 1696
0.0118750000 7.001...e-06
org-at-date-range-p 101
0.009216 9.124...e-05
org-agenda-skip 416
0.0086059999 2.068...e-05
org-deadline-close 178
0.0084609999 4.753...e-05
org-get-tags-string 424
0.0053519999 1.262...e-05
org-days-to-time 178
0.0047240000 2.653...e-05
org-time-string-to-time 178
0.0022689999 1.274...e-05
org-get-todo-state 116
0.0022219999 1.915...e-05
org-agenda-get-blocks 1
0.002071 0.002071
org-entry-is-done-p 113
0.0019850000 1.756...e-05
org-agenda-get-sexps 1
0.001713 0.001713
org-finalize-agenda 1
0.001653 0.001653
org-split-string 633
0.0015850000 2.503...e-06
org-agenda-dim-blocked-tasks 1
0.001572 0.001572
org-parse-time-string 183
0.0013499999 7.377...e-06
org-on-heading-p 424
0.0012929999 3.049...e-06
org-get-property-block 6
0.0011920000 0.0001986666
org-fit-window-to-buffer 1
0.000942 0.000942
org-block-todo-from-children-or-siblings-or-parent 2
0.000905 0.0004525
org-format-agenda-item 2
0.0008860000 0.0004430000
org-remove-uniherited-tags 627
0.0007880000 1.256...e-06
org-get-effort 2
0.00074 0.00037
ajk/org-agenda-skip-if-tagged-for-home 8
0.000539 6.7375e-05
org-get-wdays 180
0.0004700000 2.611...e-06
org-get-category 419
0.0004360000 1.040...e-06
org-trim 111
0.0003769999 3.396...e-06
org-agenda-files 3
0.000291 9.700...e-05
org-agenda-mode 1
0.000287 0.000287
org-add-prop-inherited 250
0.0002820000 1.128...e-06
org-time-string-to-absolute 5
0.000258 5.159...e-05
org-finalize-agenda-entries 1
0.000233 0.000233
org-switch-to-buffer-other-window 1
0.000217 0.000217
org-get-priority 2
0.000194 9.7e-05
org-get-tags 8
0.000168 2.1e-05
org-agenda-highlight-todo 2
0.0001590000 7.950...e-05
org-closest-date 4
0.000157 3.925e-05
org-uniquify 5
0.0001439999 2.879...e-05
org-check-agenda-file 2
0.000105 5.25e-05
org-get-agenda-file-buffer 2
9.6e-05 4.8e-05
org-find-base-buffer-visiting 2
8.5e-05 4.25e-05
org-date-to-gregorian 8
8.1e-05 1.0125e-05
org-compile-prefix-format 1
6.8e-05 6.8e-05
org-days-to-iso-week 3
5.7e-05 1.9e-05
org-agenda-format-date-aligned 1
4.8e-05 4.8e-05
org-add-props 8
3.5e-05 4.375e-06
org-agenda-new-marker 4
3.5e-05 8.75e-06
org-agenda-todayp 2
3.3e-05 1.65e-05
org-agenda-add-inherited-tags 2
2.999...e-05 1.499...e-05
org-agenda-reset-markers 1
2.7e-05 2.7e-05
org-agenda-align-tags 1
2.7e-05 2.7e-05
org-entries-lessp 1
2.4e-05 2.4e-05
org-agenda-fontify-priorities 1
1.4e-05 1.4e-05
org-agenda-mark-header-line 1
1.1e-05 1.1e-05
org-activate-bracket-links 1 9e-06
9e-06
org-get-at-bol 4 9e-06
2.25e-06
org-hh:mm-string-to-minutes 1 8e-06
8e-06
org-agenda-add-time-grid-maybe 1 7e-06
7e-06
org-agenda-deadline-face 2 7e-06
3.5e-06
org-add-hook 2 7e-06
3.5e-06
org-agenda-set-mode-name 1 6e-06
6e-06
org-float-time 4 6e-06
1.5e-06
org-agenda-mark-clocking-task 1 5e-06
5e-06
org-overlays-in 3
4.999...e-06 1.666...e-06
org-downcase-keep-props 2 4e-06
2e-06
org-unhighlight 1 4e-06
4e-06
org-region-active-p 1 3e-06
3e-06
org-file-menu-entry 1 3e-06
3e-06
org-get-todo-face 2 3e-06
1.5e-06
org-set-sorting-strategy 1 2e-06
2e-06
org-agenda-ndays-to-span 2 2e-06
1e-06
org-font-lock-add-tag-faces 1 2e-06
2e-06
org-fit-agenda-window 1 1e-06
1e-06
org-before-change-function 1 1e-06
1e-06