From mboxrd@z Thu Jan 1 00:00:00 1970 From: Carsten Dominik Subject: Re: Speeding up agenda display Date: Wed, 30 Dec 2009 20:20:24 +0100 Message-ID: <4D8BBF51-8F5A-47E4-99F4-603E349BDD99@gmail.com> References: Mime-Version: 1.0 (Apple Message framework v936) Content-Type: text/plain; charset=US-ASCII; format=flowed; delsp=yes Content-Transfer-Encoding: 7bit Return-path: Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1NQ45y-0004xB-Gk for emacs-orgmode@gnu.org; Wed, 30 Dec 2009 14:20:34 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1NQ45t-0004wj-RF for emacs-orgmode@gnu.org; Wed, 30 Dec 2009 14:20:33 -0500 Received: from [199.232.76.173] (port=42122 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1NQ45t-0004wg-OB for emacs-orgmode@gnu.org; Wed, 30 Dec 2009 14:20:29 -0500 Received: from mail-ew0-f224.google.com ([209.85.219.224]:39515) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1NQ45s-0001v9-Vb for emacs-orgmode@gnu.org; Wed, 30 Dec 2009 14:20:29 -0500 Received: by ewy24 with SMTP id 24so14383367ewy.26 for ; Wed, 30 Dec 2009 11:20:27 -0800 (PST) In-Reply-To: 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: "Andrew J. Korty" Cc: Org Mode Hi Andrew, 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'.... Also: - Are you using property inheritance? - Are you relying on tag inheritance to check for @yard and @home? - Are you using the latest version of Org-mode? Thanks - Carsten On Dec 30, 2009, at 8:06 PM, Andrew J. Korty wrote: > 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 > > > > _______________________________________________ > Emacs-orgmode mailing list > Please use `Reply All' to send replies to the list. > Emacs-orgmode@gnu.org > http://lists.gnu.org/mailman/listinfo/emacs-orgmode - Carsten