emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
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

  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).