From: Carsten Dominik <carsten.dominik@gmail.com>
To: Matt Lundin <mdl@imapmail.org>
Cc: Org Mode <emacs-orgmode@gnu.org>
Subject: Re: Slow speed of week and month views
Date: Sun, 21 Feb 2010 08:37:24 +0100 [thread overview]
Message-ID: <E8146C2B-CF2E-47F8-9015-307D5DFDEEF5@gmail.com> (raw)
In-Reply-To: <877hqdeyw3.fsf@fastmail.fm>
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.
> Emacs-orgmode@gnu.org
> http://lists.gnu.org/mailman/listinfo/emacs-orgmode
- Carsten
next prev parent reply other threads:[~2010-02-21 7:37 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-02-16 19:58 Slow speed of week and month views Matt Lundin
2010-02-21 7:37 ` Carsten Dominik [this message]
2010-02-21 12:34 ` Matthew Lundin
-- strict thread matches above, loose matches on Subject: below --
2017-08-04 15:14 [Orgmode] " Christoph Groth
2017-08-05 3:07 ` Adam Porter
2017-08-05 21:09 ` Karl Voit
2017-08-05 22:17 ` John Kitchin
2017-08-05 22:33 ` Nicolas Goaziou
2017-08-05 22:35 ` Nicolas Goaziou
2017-08-06 8:00 ` Karl Voit
2017-08-06 8:15 ` Nicolas Goaziou
2017-08-06 9:01 ` Karl Voit
2017-08-06 9:13 ` Adam Porter
2017-08-06 10:03 ` Karl Voit
2017-08-06 10:28 ` Adam Porter
2017-08-06 9:26 ` Nicolas Goaziou
2017-08-06 10:18 ` Karl Voit
2017-08-07 11:41 ` Nicolas Goaziou
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.orgmode.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=E8146C2B-CF2E-47F8-9015-307D5DFDEEF5@gmail.com \
--to=carsten.dominik@gmail.com \
--cc=emacs-orgmode@gnu.org \
--cc=mdl@imapmail.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).