From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Andrew J. Korty" Subject: Speeding up agenda display Date: Wed, 30 Dec 2009 14:06:39 -0500 Message-ID: Mime-Version: 1.0 (Apple Message framework v1077) Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable Return-path: Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1NQ3sh-00018L-9S for emacs-orgmode@gnu.org; Wed, 30 Dec 2009 14:06:51 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1NQ3sc-00015z-JU for emacs-orgmode@gnu.org; Wed, 30 Dec 2009 14:06:51 -0500 Received: from [199.232.76.173] (port=42834 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1NQ3sc-00015w-El for emacs-orgmode@gnu.org; Wed, 30 Dec 2009 14:06:46 -0500 Received: from hartman.uits.indiana.edu ([129.79.1.194]:56350) by monty-python.gnu.org with esmtps (TLS-1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1NQ3sc-00083q-11 for emacs-orgmode@gnu.org; Wed, 30 Dec 2009 14:06:46 -0500 Received: from mail-relay.iu.edu (burns.uits.indiana.edu [129.79.1.202]) by hartman.uits.indiana.edu (8.14.2/8.13.8/IU Messaging Team) with ESMTP id nBUJ6fXl030865 for ; Wed, 30 Dec 2009 14:06:41 -0500 Received: from 149-166-143-159.dhcp-in.iupui.edu (149-166-143-159.dhcp-in.iupui.edu [149.166.143.159]) (authenticated bits=0) by mail-relay.iu.edu (8.14.2/8.13.8/IU Messaging Team Submission) with ESMTP id nBUJ6dm1012195 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=NO) for ; Wed, 30 Dec 2009 14:06:41 -0500 List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: Org Mode My agenda views take a couple seconds to build, and I'd like them to be = faster. I'm posting a portion of configuration and some profiling = results here in case anyone can see any opportunities for optimization. Some background: I don't use the diary at all -- this agenda view exists = only to show me tasks that are due soon (and in this case, not tagged = with @yard or @home). 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-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)))) (defun ajk/org-agenda-skip-if-action () (if (org-get-todo-state) (ajk/org-skip-position))) org-agenda 1 = 2.017599 2.017599 org-let 1 = 1.33683 1.33683 org-agenda-list 1 = 1.336819 1.336819 org-agenda-get-day-entries 1 = 1.30812 1.30812 org-entry-get 422 = 0.9243140000 0.0021903175 org-entry-properties 416 = 0.9203020000 0.0022122644 org-get-tags-at 418 = 0.6899759999 0.0016506602 org-agenda-get-restriction-and-command 1 = 0.680728 0.680728 org-agenda-get-scheduled 1 = 0.663837 0.663837 org-up-heading-safe 1055 = 0.6547349999 0.0006206018 org-agenda-get-deadlines 1 = 0.545852 0.545852 org-agenda-skip-entry-if 416 = 0.1982539999 0.0004765721 org-agenda-skip-if 416 = 0.1969610000 0.0004734639 org-back-to-heading 2439 = 0.1005620000 4.123...e-05 org-agenda-get-timestamps 1 = 0.094435 0.094435 org-prepare-agenda 1 = 0.02532 0.02532 org-prepare-agenda-buffers 1 = 0.024896 0.024896 org-refresh-category-properties 1 = 0.012516 0.012516 org-outline-level 1696 = 0.0119610000 7.052...e-06 org-deadline-close 178 = 0.0085670000 4.812...e-05 org-agenda-skip 416 = 0.0071490000 1.718...e-05 org-get-tags-string 424 = 0.0054299999 1.280...e-05 org-days-to-time 178 = 0.0048369999 2.717...e-05 org-at-date-range-p 101 = 0.0044149999 4.371...e-05 org-time-string-to-time 178 = 0.0023639999 1.328...e-05 org-get-todo-state 116 = 0.0021619999 1.863...e-05 org-agenda-get-blocks 1 = 0.002077 0.002077 org-entry-is-done-p 113 = 0.0019640000 1.738...e-05 org-finalize-agenda 1 = 0.001947 0.001947 org-agenda-dim-blocked-tasks 1 = 0.001868 0.001868 org-agenda-get-sexps 1 = 0.001698 0.001698 org-split-string 633 = 0.0016380000 2.587...e-06 org-get-property-block 6 = 0.001411 0.0002351666 org-on-heading-p 424 = 0.0013999999 3.301...e-06 org-parse-time-string 183 = 0.0013529999 7.393...e-06 org-block-todo-from-children-or-siblings-or-parent 2 = 0.001044 0.000522 org-format-agenda-item 2 = 0.000966 0.000483 org-fit-window-to-buffer 1 = 0.000891 0.000891 org-get-effort 2 = 0.000815 0.0004075 org-remove-uniherited-tags 627 = 0.0007940000 1.266...e-06 org-get-wdays 180 = 0.0004619999 2.566...e-06 org-get-category 419 = 0.0004180000 9.976...e-07 org-trim 111 = 0.0003930000 3.540...e-06 org-agenda-files 3 = 0.000329 0.0001096666 org-add-prop-inherited 250 = 0.0003230000 1.292...e-06 org-switch-to-buffer-other-window 1 = 0.000287 0.000287 org-time-string-to-absolute 5 = 0.0002600000 5.200...e-05 org-agenda-mode 1 = 0.00025 0.00025 org-finalize-agenda-entries 1 = 0.000224 0.000224 org-get-priority 2 = 0.000195 9.75e-05 org-get-tags 8 = 0.000177 2.2125e-05 org-check-agenda-file 2 = 0.000159 7.95e-05 org-closest-date 4 = 0.000158 3.95e-05 org-agenda-highlight-todo 2 = 0.000152 7.6e-05 org-get-agenda-file-buffer 2 = 0.000144 7.2e-05 org-find-base-buffer-visiting 2 = 0.000133 6.65e-05 org-uniquify 5 = 0.000129 2.579...e-05 org-date-to-gregorian 8 = 8.199...e-05 1.024...e-05 org-days-to-iso-week 3 = 5.499...e-05 1.833...e-05 org-compile-prefix-format 1 = 5.2e-05 5.2e-05 org-agenda-format-date-aligned 1 = 4.6e-05 4.6e-05 org-add-props 9 = 3.999...e-05 4.444...e-06 org-agenda-new-marker 4 = 3.3e-05 8.25e-06 org-agenda-todayp 2 = 3.3e-05 1.65e-05 org-agenda-add-inherited-tags 2 = 2.8e-05 1.4e-05 org-agenda-align-tags 1 = 2.5e-05 2.5e-05 org-entries-lessp 1 = 2.3e-05 2.3e-05 org-agenda-fontify-priorities 1 = 1.5e-05 1.5e-05 org-activate-bracket-links 1 = 1e-05 1e-05 org-get-at-bol 4 = 9.999...e-06 2.499...e-06 org-agenda-mark-header-line 1 = 8e-06 8e-06 org-agenda-deadline-face 2 = 8e-06 4e-06 org-agenda-set-mode-name 1 = 7e-06 7e-06 org-agenda-add-time-grid-maybe 1 = 7e-06 7e-06 org-hh:mm-string-to-minutes 1 = 7e-06 7e-06 org-add-hook 2 = 7e-06 3.5e-06 org-region-active-p 1 = 6e-06 6e-06 org-overlays-in 3 = 5.999...e-06 2e-06 org-agenda-mark-clocking-task 1 = 5e-06 5e-06 org-downcase-keep-props 2 = 4e-06 2e-06 org-float-time 4 = 4e-06 1e-06 org-get-todo-face 2 = 4e-06 2e-06 org-before-change-function 1 = 4e-06 4e-06 org-agenda-reset-markers 1 = 3e-06 3e-06 org-agenda-post-command-hook 1 = 3e-06 3e-06 org-file-menu-entry 1 = 3e-06 3e-06 org-unhighlight 1 = 3e-06 3e-06 org-set-sorting-strategy 1 = 1e-06 1e-06 org-fit-agenda-window 1 = 1e-06 1e-06 org-agenda-ndays-to-span 1 = 1e-06 1e-06 org-font-lock-add-tag-faces 1 = 1e-06 1e-06