emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Matt Lundin <mdl@imapmail.org>
To: Org Mode <emacs-orgmode@gnu.org>
Subject: Slow speed of week and month views
Date: Tue, 16 Feb 2010 14:58:20 -0500	[thread overview]
Message-ID: <877hqdeyw3.fsf@fastmail.fm> (raw)

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

             reply	other threads:[~2010-02-16 19:58 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-02-16 19:58 Matt Lundin [this message]
2010-02-21  7:37 ` Slow speed of week and month views Carsten Dominik
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=877hqdeyw3.fsf@fastmail.fm \
    --to=mdl@imapmail.org \
    --cc=emacs-orgmode@gnu.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).