emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Orgmode] Slow speed of week and month views


From: Carsten Dominik
Subject: Re: [Orgmode] Slow speed of week and month views
Date: Sun, 21 Feb 2010 08:37:24 +0100

Hi Matt,

I am afraid I don't see any major speed improvements that could make this happen. Yes, one could parse all the files once, build a table in memory and get the entries for each day from there - but that comes down to a complete rewrite of the parser, maybe even to switching to an internal representation model for Org-mode.

I don't see that happening, I am afraid.

- Carsten

On Feb 16, 2010, at 8:58 PM, Matt Lundin wrote:

Currently I use org-mode to keep track of todos, projects, deadlines and
the emacs diary to keep track of appointments. I would prefer to keep
the latter in org-mode, but the slow speed of the weekly and monthly
agenda views makes it difficult to gain a quick calendar overview of all
upcoming timestamped items.

Has anyone had success in setting up a *fast* calendar view for
org-mode? I use the following custom command to get a view of
timestamped items only:

--8<---------------cut here---------------start------------->8---
("cc" "Calendar (events)" agenda ""
((org-agenda-ndays 1)
 (org-agenda-time-grid nil)
 (org-agenda-prefix-format " %-12:t ")
 (org-agenda-include-all-todo nil)
 (org-agenda-repeating-timestamp-show-all t)
(org-agenda-skip-function '(org-agenda-skip-entry-if 'deadline 'scheduled))))
--8<---------------cut here---------------end--------------->8---

With 25 agenda files, if I type "v m" (view month) in the agenda results
for this custom command, it takes over 16 seconds to generate the
monthly calendar.[1]

I get similar results if I type "v m" in the default agenda view.[2] As
a point of comparison, I've included the time it takes to generate an
agenda view for a single day on my system.[3]

As far as I can tell, org-mode scans each agenda file anew for each day
shown in the weekly or monthly agenda (hence the many invocations of
org-agenda-get-day-entries in the results below), so the time it takes
to generate the agenda is roughly proportional to the number of days in
the view.

Does anyone have any tips for speeding up the weekly or monthly agenda
views? I have vague and utterly naïve notions of a function that would
scan each agenda file *once* for timestamps within a given range rather
than searching the agenda files again for each new day---but such a
function is far beyond my elisp skills. Any help would be greatly
appreciated.

Thanks!
Matt

Footnotes:

[1] Monthly view of custom command with 25 agenda files:

org-agenda-view-mode-dispatch 1 15.528815 15.528815 org-agenda-month-view 1 15.384877 15.384877 org-agenda-change-time-span 1 15.384839 15.384839 org-agenda-redo 1 15.383679 15.383679 org-agenda-list 1 15.382742 15.382742 org-agenda-get-day-entries 700 13.948870999 0.0199269585 org-agenda-get-scheduled 700 6.4163719999 0.0091662457 org-agenda-skip-entry-if 12871 5.3256909999 0.0004137744 org-agenda-skip-if 12871 5.1750260000 0.0004020686 org-agenda-get-deadlines 700 4.2478989999 0.0060684271 org-agenda-get-timestamps 700 1.7289499999 0.0024699285 org-agenda-get-sexps 700 0.6763130000 0.0009661614 org-agenda-get-blocks 700 0.6087859999 0.0008696942 org-agenda-todayp 1400 0.3336939999 0.0002383528 org-agenda-skip 15534 0.0450969999 2.903...e-06 org-agenda-files 3 0.016815 0.005605 org-agenda-cleanup-fancy-diary 28 0.0062590000 0.0002235357 org-agenda-mode 1 0.00606 0.00606 org-agenda-highlight-todo 86 0.0041800000 4.860...e-05 org-agenda-format-date-aligned 28 0.0033799999 0.0001207142 org-agenda-new-marker 136 0.0012809999 9.419...e-06 org-agenda-mark-clocking-task 1 0.00121 0.00121 org-agenda-align-tags 1 0.000903 0.000903 org-agenda-find-same-or-today-or-agenda 1 0.000499 0.000499 org-agenda-fontify-priorities 1 0.000394 0.000394 org-agenda-fix-displayed-tags 86 0.0003439999 3.999...e-06 org-agenda-add-time-grid-maybe 23 0.000236 1.026...e-05 org-agenda-set-mode-name 2 6.2e-05 3.1e-05 org-agenda-compute-time-span 1 3.8e-05 3.8e-05 org-agenda-mark-header-line 1 3.5e-05 3.5e-05 org-agenda-post-command-hook 2 1.6e-05 8e-06 org-agenda-reset-markers 1 1e-05 1e-05 org-agenda-ndays-to-span 2 6e-06 3e-06 org-agenda-check-type 1 5e-06 5e-06

[2] Elp results for monthly agenda view:

org-agenda-view-mode-dispatch 1 14.143243 14.143243 org-agenda-month-view 1 13.974747 13.974747 org-agenda-change-time-span 1 13.974703 13.974703 org-agenda-redo 1 13.972615 13.972615 org-agenda-list 1 13.97065 13.97065 org-agenda-get-day-entries 700 12.608783999 0.0180125485 org-agenda-get-scheduled 700 5.9895430000 0.0085564900 org-agenda-get-deadlines 700 3.8111570000 0.0054445100 org-agenda-get-timestamps 700 1.2642759999 0.0018061085 org-agenda-get-sexps 700 0.6626510000 0.0009466442 org-agenda-skip 15534 0.6255180000 4.026...e-05 org-agenda-get-blocks 700 0.6051640000 0.0008645200 org-agenda-todayp 1400 0.326468 0.0002331914 org-agenda-align-tags 1 0.023695 0.023695 org-agenda-highlight-todo 178 0.0217819999 0.0001223707 org-agenda-files 3 0.0175449999 0.0058483333 org-agenda-cleanup-fancy-diary 28 0.006159 0.0002199642 org-agenda-mode 1 0.006109 0.006109 org-agenda-mark-clocking-task 1 0.005423 0.005423 org-agenda-format-date-aligned 28 0.003358 0.0001199285 org-agenda-new-marker 314 0.0026219999 8.350...e-06 org-agenda-add-time-grid-maybe 27 0.0011129999 4.122...e-05 org-agenda-fontify-priorities 1 0.000879 0.000879 org-agenda-fix-displayed-tags 178 0.0008699999 4.887...e-06 org-agenda-find-same-or-today-or-agenda 1 0.000471 0.000471 org-agenda-deadline-face 27 0.0002540000 9.407...e-06 org-agenda-reset-markers 1 8.5e-05 8.5e-05 org-agenda-set-mode-name 2 5.7e-05 2.85e-05 org-agenda-mark-header-line 1 3.6e-05 3.6e-05 org-agenda-compute-time-span 1 3.3e-05 3.3e-05 org-agenda-post-command-hook 2 2.2e-05 1.1e-05 org-agenda-ndays-to-span 2 7e-06 3.5e-06 org-agenda-check-type 1 5e-06 5e-06

[3] Agenda view for single day:

org-agenda-list 1 1.765911 1.765911 org-agenda-get-day-entries 25 1.075021 0.04300084 org-agenda-get-scheduled 25 0.8153739999 0.0326149599 org-agenda-get-deadlines 25 0.1540369999 0.0061614799 org-agenda-get-timestamps 25 0.0491 0.001964 org-agenda-get-sexps 25 0.023261 0.00093044 org-agenda-skip 555 0.0225499999 4.063...e-05 org-agenda-get-blocks 25 0.021848 0.0008739199 org-agenda-files 3 0.0159939999 0.0053313333 org-agenda-align-tags 1 0.013129 0.013129 org-agenda-highlight-todo 59 0.0100849999 0.0001709322 org-agenda-mode 1 0.007312 0.007312 org-agenda-todayp 50 0.0030340000 6.068e-05 org-agenda-mark-clocking-task 1 0.002379 0.002379 org-agenda-new-marker 112 0.0008930000 7.973...e-06 org-agenda-add-time-grid-maybe 1 0.000831 0.000831 org-agenda-fontify-priorities 1 0.000378 0.000378 org-agenda-fix-displayed-tags 59 0.0002479999 4.203...e-06 org-agenda-cleanup-fancy-diary 1 0.00022 0.00022 org-agenda-deadline-face 18 0.000182 1.011...e-05 org-agenda-format-date-aligned 1 0.000117 0.000117 org-agenda-reset-markers 1 8.5e-05 8.5e-05 org-agenda-mark-header-line 1 3.7e-05 3.7e-05 org-agenda-set-mode-name 1 2.7e-05 2.7e-05 org-agenda-post-command-hook 1 1.8e-05 1.8e-05 org-agenda-ndays-to-span 2 7e-06 3.5e-06




_______________________________________________
Emacs-orgmode mailing list
Please use `Reply All' to send replies to the list.
address@hidden
http://lists.gnu.org/mailman/listinfo/emacs-orgmode

- Carsten







reply via email to

[Prev in Thread] Current Thread [Next in Thread]