emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
* Speeding up agenda display
@ 2009-12-30 19:06 Andrew J. Korty
  2009-12-30 19:20 ` Carsten Dominik
  0 siblings, 1 reply; 10+ messages in thread
From: Andrew J. Korty @ 2009-12-30 19:06 UTC (permalink / raw)
  To: Org Mode

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

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Speeding up agenda display
  2009-12-30 19:06 Speeding up agenda display Andrew J. Korty
@ 2009-12-30 19:20 ` Carsten Dominik
  2009-12-30 19:40   ` Andrew J. Korty
  0 siblings, 1 reply; 10+ messages in thread
From: Carsten Dominik @ 2009-12-30 19:20 UTC (permalink / raw)
  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

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Speeding up agenda display
  2009-12-30 19:20 ` Carsten Dominik
@ 2009-12-30 19:40   ` Andrew J. Korty
  2009-12-31  7:45     ` Carsten Dominik
  0 siblings, 1 reply; 10+ messages in thread
From: Andrew J. Korty @ 2009-12-30 19:40 UTC (permalink / raw)
  To: Org Mode

On Dec 30, 2009, at 14:20 , Carsten Dominik wrote:

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

Yes to both -- see below for corrected listings of code and profiling results.

> Also:
> 
> - Are you using property inheritance?
> - Are you relying on tag inheritance to check for @yard and @home?

No to both.

> - Are you using the latest version of Org-mode?

I'm using 6.33.

Btw, the single org file from which the agenda is generated contains 323 headlines in the TODO state and 12,227 lines total.

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-due-soon ()
  (and (let ((time (org-entry-get nil "DEADLINE"))) ; not due or not due soon
         (and time
              (org-deadline-close time)))
       (ajk/org-skip-position)))

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

org-agenda                                                    1           1.997575      1.997575
org-let                                                       1           1.3057590000  1.3057590000
org-agenda-list                                               1           1.305747      1.305747
org-agenda-get-day-entries                                    1           1.279215      1.279215
ajk/org-agenda-skip-if-not-due-soon                           416         1.0349629999  0.0024878918
ajk/org-agenda-skip-if-due-soon                               416         0.9751669999  0.0023441514
org-entry-get                                                 422         0.9655619999  0.0022880616
org-entry-properties                                          416         0.9618369999  0.0023121081
org-get-tags-at                                               418         0.6982910000  0.0016705526
org-agenda-get-restriction-and-command                        1           0.691773      0.691773
org-up-heading-safe                                           1055        0.6649149999  0.0006302511
org-agenda-get-scheduled                                      1           0.6341589999  0.6341589999
org-agenda-get-deadlines                                      1           0.5069330000  0.5069330000
org-agenda-skip-entry-if                                      416         0.1385249999  0.0003329927
org-agenda-skip-if                                            416         0.1372300000  0.0003298798
org-agenda-get-timestamps                                     1           0.134207      0.134207
org-back-to-heading                                           2439        0.0887650000  3.639...e-05
ajk/org-skip-position                                         419         0.0583169999  0.0001391813
org-prepare-agenda                                            1           0.023446      0.023446
org-prepare-agenda-buffers                                    1           0.022988      0.022988
org-refresh-category-properties                               1           0.012406      0.012406
org-outline-level                                             1696        0.0118750000  7.001...e-06
org-at-date-range-p                                           101         0.009216      9.124...e-05
org-agenda-skip                                               416         0.0086059999  2.068...e-05
org-deadline-close                                            178         0.0084609999  4.753...e-05
org-get-tags-string                                           424         0.0053519999  1.262...e-05
org-days-to-time                                              178         0.0047240000  2.653...e-05
org-time-string-to-time                                       178         0.0022689999  1.274...e-05
org-get-todo-state                                            116         0.0022219999  1.915...e-05
org-agenda-get-blocks                                         1           0.002071      0.002071
org-entry-is-done-p                                           113         0.0019850000  1.756...e-05
org-agenda-get-sexps                                          1           0.001713      0.001713
org-finalize-agenda                                           1           0.001653      0.001653
org-split-string                                              633         0.0015850000  2.503...e-06
org-agenda-dim-blocked-tasks                                  1           0.001572      0.001572
org-parse-time-string                                         183         0.0013499999  7.377...e-06
org-on-heading-p                                              424         0.0012929999  3.049...e-06
org-get-property-block                                        6           0.0011920000  0.0001986666
org-fit-window-to-buffer                                      1           0.000942      0.000942
org-block-todo-from-children-or-siblings-or-parent            2           0.000905      0.0004525
org-format-agenda-item                                        2           0.0008860000  0.0004430000
org-remove-uniherited-tags                                    627         0.0007880000  1.256...e-06
org-get-effort                                                2           0.00074       0.00037
ajk/org-agenda-skip-if-tagged-for-home                        8           0.000539      6.7375e-05
org-get-wdays                                                 180         0.0004700000  2.611...e-06
org-get-category                                              419         0.0004360000  1.040...e-06
org-trim                                                      111         0.0003769999  3.396...e-06
org-agenda-files                                              3           0.000291      9.700...e-05
org-agenda-mode                                               1           0.000287      0.000287
org-add-prop-inherited                                        250         0.0002820000  1.128...e-06
org-time-string-to-absolute                                   5           0.000258      5.159...e-05
org-finalize-agenda-entries                                   1           0.000233      0.000233
org-switch-to-buffer-other-window                             1           0.000217      0.000217
org-get-priority                                              2           0.000194      9.7e-05
org-get-tags                                                  8           0.000168      2.1e-05
org-agenda-highlight-todo                                     2           0.0001590000  7.950...e-05
org-closest-date                                              4           0.000157      3.925e-05
org-uniquify                                                  5           0.0001439999  2.879...e-05
org-check-agenda-file                                         2           0.000105      5.25e-05
org-get-agenda-file-buffer                                    2           9.6e-05       4.8e-05
org-find-base-buffer-visiting                                 2           8.5e-05       4.25e-05
org-date-to-gregorian                                         8           8.1e-05       1.0125e-05
org-compile-prefix-format                                     1           6.8e-05       6.8e-05
org-days-to-iso-week                                          3           5.7e-05       1.9e-05
org-agenda-format-date-aligned                                1           4.8e-05       4.8e-05
org-add-props                                                 8           3.5e-05       4.375e-06
org-agenda-new-marker                                         4           3.5e-05       8.75e-06
org-agenda-todayp                                             2           3.3e-05       1.65e-05
org-agenda-add-inherited-tags                                 2           2.999...e-05  1.499...e-05
org-agenda-reset-markers                                      1           2.7e-05       2.7e-05
org-agenda-align-tags                                         1           2.7e-05       2.7e-05
org-entries-lessp                                             1           2.4e-05       2.4e-05
org-agenda-fontify-priorities                                 1           1.4e-05       1.4e-05
org-agenda-mark-header-line                                   1           1.1e-05       1.1e-05
org-activate-bracket-links                                    1           9e-06         9e-06
org-get-at-bol                                                4           9e-06         2.25e-06
org-hh:mm-string-to-minutes                                   1           8e-06         8e-06
org-agenda-add-time-grid-maybe                                1           7e-06         7e-06
org-agenda-deadline-face                                      2           7e-06         3.5e-06
org-add-hook                                                  2           7e-06         3.5e-06
org-agenda-set-mode-name                                      1           6e-06         6e-06
org-float-time                                                4           6e-06         1.5e-06
org-agenda-mark-clocking-task                                 1           5e-06         5e-06
org-overlays-in                                               3           4.999...e-06  1.666...e-06
org-downcase-keep-props                                       2           4e-06         2e-06
org-unhighlight                                               1           4e-06         4e-06
org-region-active-p                                           1           3e-06         3e-06
org-file-menu-entry                                           1           3e-06         3e-06
org-get-todo-face                                             2           3e-06         1.5e-06
org-set-sorting-strategy                                      1           2e-06         2e-06
org-agenda-ndays-to-span                                      2           2e-06         1e-06
org-font-lock-add-tag-faces                                   1           2e-06         2e-06
org-fit-agenda-window                                         1           1e-06         1e-06
org-before-change-function                                    1           1e-06         1e-06

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Speeding up agenda display
  2009-12-30 19:40   ` Andrew J. Korty
@ 2009-12-31  7:45     ` Carsten Dominik
  2009-12-31 17:46       ` Andrew J. Korty
  0 siblings, 1 reply; 10+ messages in thread
From: Carsten Dominik @ 2009-12-31  7:45 UTC (permalink / raw)
  To: Andrew J. Korty; +Cc: Org Mode

Hi Andrew, thanks!

The only thing I see now is this:

1. Get the latest development version.  A week or two ago I made
    an optimization that should speed up

    (org-entry-get nil "DEADLINE")

    quite a bit.

Let's see if that does help enough.

- Carsten

On Dec 30, 2009, at 8:40 PM, Andrew J. Korty wrote:

> On Dec 30, 2009, at 14:20 , Carsten Dominik wrote:
>
>> 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'....
>
> Yes to both -- see below for corrected listings of code and  
> profiling results.
>
>> Also:
>>
>> - Are you using property inheritance?
>> - Are you relying on tag inheritance to check for @yard and @home?
>
> No to both.
>
>> - Are you using the latest version of Org-mode?
>
> I'm using 6.33.
>
> Btw, the single org file from which the agenda is generated contains  
> 323 headlines in the TODO state and 12,227 lines total.
>
> 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-due-soon ()
>  (and (let ((time (org-entry-get nil "DEADLINE"))) ; not due or not  
> due soon
>         (and time
>              (org-deadline-close time)))
>       (ajk/org-skip-position)))
>
> (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))))
>
> org-agenda                                                     
> 1           1.997575      1.997575
> org-let                                                        
> 1           1.3057590000  1.3057590000
> org-agenda-list                                                
> 1           1.305747      1.305747
> org-agenda-get-day-entries                                     
> 1           1.279215      1.279215
> ajk/org-agenda-skip-if-not-due-soon                            
> 416         1.0349629999  0.0024878918
> ajk/org-agenda-skip-if-due-soon                                
> 416         0.9751669999  0.0023441514
> org-entry-get                                                  
> 422         0.9655619999  0.0022880616
> org-entry-properties                                           
> 416         0.9618369999  0.0023121081
> org-get-tags-at                                                
> 418         0.6982910000  0.0016705526
> org-agenda-get-restriction-and-command                         
> 1           0.691773      0.691773
> org-up-heading-safe                                            
> 1055        0.6649149999  0.0006302511
> org-agenda-get-scheduled                                       
> 1           0.6341589999  0.6341589999
> org-agenda-get-deadlines                                       
> 1           0.5069330000  0.5069330000
> org-agenda-skip-entry-if                                       
> 416         0.1385249999  0.0003329927
> org-agenda-skip-if                                             
> 416         0.1372300000  0.0003298798
> org-agenda-get-timestamps                                      
> 1           0.134207      0.134207
> org-back-to-heading                                            
> 2439        0.0887650000  3.639...e-05
> ajk/org-skip-position                                          
> 419         0.0583169999  0.0001391813
> org-prepare-agenda                                             
> 1           0.023446      0.023446
> org-prepare-agenda-buffers                                     
> 1           0.022988      0.022988
> org-refresh-category-properties                                
> 1           0.012406      0.012406
> org-outline-level                                              
> 1696        0.0118750000  7.001...e-06
> org-at-date-range-p                                            
> 101         0.009216      9.124...e-05
> org-agenda-skip                                                
> 416         0.0086059999  2.068...e-05
> org-deadline-close                                             
> 178         0.0084609999  4.753...e-05
> org-get-tags-string                                            
> 424         0.0053519999  1.262...e-05
> org-days-to-time                                               
> 178         0.0047240000  2.653...e-05
> org-time-string-to-time                                        
> 178         0.0022689999  1.274...e-05
> org-get-todo-state                                             
> 116         0.0022219999  1.915...e-05
> org-agenda-get-blocks                                          
> 1           0.002071      0.002071
> org-entry-is-done-p                                            
> 113         0.0019850000  1.756...e-05
> org-agenda-get-sexps                                           
> 1           0.001713      0.001713
> org-finalize-agenda                                            
> 1           0.001653      0.001653
> org-split-string                                               
> 633         0.0015850000  2.503...e-06
> org-agenda-dim-blocked-tasks                                   
> 1           0.001572      0.001572
> org-parse-time-string                                          
> 183         0.0013499999  7.377...e-06
> org-on-heading-p                                               
> 424         0.0012929999  3.049...e-06
> org-get-property-block                                         
> 6           0.0011920000  0.0001986666
> org-fit-window-to-buffer                                       
> 1           0.000942      0.000942
> org-block-todo-from-children-or-siblings-or-parent             
> 2           0.000905      0.0004525
> org-format-agenda-item                                         
> 2           0.0008860000  0.0004430000
> org-remove-uniherited-tags                                     
> 627         0.0007880000  1.256...e-06
> org-get-effort                                                 
> 2           0.00074       0.00037
> ajk/org-agenda-skip-if-tagged-for-home                         
> 8           0.000539      6.7375e-05
> org-get-wdays                                                  
> 180         0.0004700000  2.611...e-06
> org-get-category                                               
> 419         0.0004360000  1.040...e-06
> org-trim                                                       
> 111         0.0003769999  3.396...e-06
> org-agenda-files                                               
> 3           0.000291      9.700...e-05
> org-agenda-mode                                                
> 1           0.000287      0.000287
> org-add-prop-inherited                                         
> 250         0.0002820000  1.128...e-06
> org-time-string-to-absolute                                    
> 5           0.000258      5.159...e-05
> org-finalize-agenda-entries                                    
> 1           0.000233      0.000233
> org-switch-to-buffer-other-window                              
> 1           0.000217      0.000217
> org-get-priority                                               
> 2           0.000194      9.7e-05
> org-get-tags                                                   
> 8           0.000168      2.1e-05
> org-agenda-highlight-todo                                      
> 2           0.0001590000  7.950...e-05
> org-closest-date                                               
> 4           0.000157      3.925e-05
> org-uniquify                                                   
> 5           0.0001439999  2.879...e-05
> org-check-agenda-file                                          
> 2           0.000105      5.25e-05
> org-get-agenda-file-buffer                                     
> 2           9.6e-05       4.8e-05
> org-find-base-buffer-visiting                                  
> 2           8.5e-05       4.25e-05
> org-date-to-gregorian                                          
> 8           8.1e-05       1.0125e-05
> org-compile-prefix-format                                      
> 1           6.8e-05       6.8e-05
> org-days-to-iso-week                                           
> 3           5.7e-05       1.9e-05
> org-agenda-format-date-aligned                                 
> 1           4.8e-05       4.8e-05
> org-add-props                                                  
> 8           3.5e-05       4.375e-06
> org-agenda-new-marker                                          
> 4           3.5e-05       8.75e-06
> org-agenda-todayp                                              
> 2           3.3e-05       1.65e-05
> org-agenda-add-inherited-tags                                  
> 2           2.999...e-05  1.499...e-05
> org-agenda-reset-markers                                       
> 1           2.7e-05       2.7e-05
> org-agenda-align-tags                                          
> 1           2.7e-05       2.7e-05
> org-entries-lessp                                              
> 1           2.4e-05       2.4e-05
> org-agenda-fontify-priorities                                  
> 1           1.4e-05       1.4e-05
> org-agenda-mark-header-line                                    
> 1           1.1e-05       1.1e-05
> org-activate-bracket-links                                     
> 1           9e-06         9e-06
> org-get-at-bol                                                 
> 4           9e-06         2.25e-06
> org-hh:mm-string-to-minutes                                    
> 1           8e-06         8e-06
> org-agenda-add-time-grid-maybe                                 
> 1           7e-06         7e-06
> org-agenda-deadline-face                                       
> 2           7e-06         3.5e-06
> org-add-hook                                                   
> 2           7e-06         3.5e-06
> org-agenda-set-mode-name                                       
> 1           6e-06         6e-06
> org-float-time                                                 
> 4           6e-06         1.5e-06
> org-agenda-mark-clocking-task                                  
> 1           5e-06         5e-06
> org-overlays-in                                                
> 3           4.999...e-06  1.666...e-06
> org-downcase-keep-props                                        
> 2           4e-06         2e-06
> org-unhighlight                                                
> 1           4e-06         4e-06
> org-region-active-p                                            
> 1           3e-06         3e-06
> org-file-menu-entry                                            
> 1           3e-06         3e-06
> org-get-todo-face                                              
> 2           3e-06         1.5e-06
> org-set-sorting-strategy                                       
> 1           2e-06         2e-06
> org-agenda-ndays-to-span                                       
> 2           2e-06         1e-06
> org-font-lock-add-tag-faces                                    
> 1           2e-06         2e-06
> org-fit-agenda-window                                          
> 1           1e-06         1e-06
> org-before-change-function                                     
> 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

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Speeding up agenda display
  2009-12-31  7:45     ` Carsten Dominik
@ 2009-12-31 17:46       ` Andrew J. Korty
  2010-01-02  7:50         ` Carsten Dominik
  0 siblings, 1 reply; 10+ messages in thread
From: Andrew J. Korty @ 2009-12-31 17:46 UTC (permalink / raw)
  To: Org Mode

Shaved off half a second.  So that's something!

ajk

org-agenda                                                    1           1.534166      1.534166
org-let                                                       1           1.070332      1.070332
org-agenda-list                                               1           1.070318      1.070318
org-agenda-get-day-entries                                    1           1.040049      1.040049
ajk/org-agenda-skip-if-not-due-soon                           416         0.5035600000  0.0012104807
org-agenda-get-scheduled                                      1           0.478835      0.478835
org-agenda-get-restriction-and-command                        1           0.463795      0.463795
ajk/org-agenda-skip-if-due-soon                               416         0.3743920000  0.0008999807
org-entry-get                                                 425         0.366792      0.00086304
org-entry-properties                                          416         0.3582450000  0.0008611658
org-agenda-skip-entry-if                                      416         0.3090569999  0.0007429254
org-agenda-skip-if                                            416         0.3077089999  0.0007396850
org-agenda-get-timestamps                                     1           0.302895      0.302895
org-agenda-get-deadlines                                      1           0.254305      0.254305
org-back-to-heading                                           991         0.1790740000  0.0001807003
ajk/org-skip-position                                         419         0.1317510000  0.0003144415
org-at-date-range-p                                           101         0.0377359999  0.0003736237
org-prepare-agenda                                            1           0.022929      0.022929
org-prepare-agenda-buffers                                    1           0.022543      0.022543
org-agenda-skip                                               416         0.0190569999  4.581...e-05
org-refresh-category-properties                               1           0.011837      0.011837
org-get-tags-at                                               3           0.009567      0.0031890000
org-up-heading-safe                                           11          0.0094379999  0.0008579999
org-deadline-close                                            177         0.0081639999  4.612...e-05
org-finalize-agenda                                           1           0.005829      0.005829
org-agenda-dim-blocked-tasks                                  1           0.005662      0.005662
org-get-property-block                                        9           0.005145      0.0005716666
org-days-to-time                                              177         0.0044610000  2.520...e-05
org-get-todo-state                                            119         0.004413      3.708...e-05
org-format-agenda-item                                        3           0.003384      0.0011279999
org-get-effort                                                3           0.0031450000  0.0010483333
org-block-todo-from-children-or-siblings-or-parent            3           0.0028770000  0.0009590000
org-time-string-to-time                                       177         0.0021530000  1.216...e-05
org-agenda-get-blocks                                         1           0.002113      0.002113
org-entry-is-done-p                                           114         0.0020669999  1.813...e-05
org-agenda-get-sexps                                          1           0.001715      0.001715
ajk/org-agenda-skip-if-tagged-for-home                        11          0.001621      0.0001473636
org-parse-time-string                                         184         0.0012810000  6.961...e-06
org-get-priority                                              3           0.0009730000  0.0003243333
org-fit-window-to-buffer                                      1           0.000604      0.000604
org-get-category                                              420         0.0004230000  1.007...e-06
org-get-wdays                                                 180         0.0004199999  2.333...e-06
org-trim                                                      113         0.0003679999  3.256...e-06
org-finalize-agenda-entries                                   1           0.000337      0.000337
org-get-tags                                                  11          0.000304      2.763...e-05
org-time-string-to-absolute                                   7           0.0002929999  4.185...e-05
org-agenda-mode                                               1           0.000236      0.000236
org-agenda-highlight-todo                                     3           0.000225      7.5e-05
org-agenda-files                                              3           0.000218      7.266...e-05
org-get-tags-string                                           11          0.0001759999  1.599...e-05
org-switch-to-buffer-other-window                             1           0.000172      0.000172
org-closest-date                                              4           0.000158      3.95e-05
org-outline-level                                             25          0.0001409999  5.639...e-06
org-uniquify                                                  5           0.0001150000  2.300...e-05
org-check-agenda-file                                         2           9.5e-05       4.75e-05
org-date-to-gregorian                                         8           8.2e-05       1.025e-05
org-get-agenda-file-buffer                                    2           8.2e-05       4.1e-05
org-split-string                                              16          7.5e-05       4.6875e-06
org-find-base-buffer-visiting                                 2           7.2e-05       3.6e-05
org-activate-bracket-links                                    2           6.8e-05       3.4e-05
org-days-to-iso-week                                          3           5.699...e-05  1.899...e-05
org-agenda-format-date-aligned                                1           5.5e-05       5.5e-05
org-compile-prefix-format                                     1           5.3e-05       5.3e-05
org-add-props                                                 11          4.9e-05       4.454...e-06
org-agenda-fix-displayed-tags                                 3           4.5e-05       1.5e-05
org-agenda-new-marker                                         6           4.4e-05       7.333...e-06
org-entries-lessp                                             2           3.999...e-05  1.999...e-05
org-agenda-align-tags                                         1           3.6e-05       3.6e-05
org-agenda-todayp                                             2           3.1e-05       1.55e-05
org-on-heading-p                                              11          3.000...e-05  2.727...e-06
org-agenda-reset-markers                                      1           2.1e-05       2.1e-05
org-agenda-fontify-priorities                                 1           2.1e-05       2.1e-05
org-hh:mm-string-to-minutes                                   2           1.499...e-05  7.499...e-06
org-get-at-bol                                                5           1.2e-05       2.4e-06
org-agenda-add-time-grid-maybe                                1           1.1e-05       1.1e-05
org-get-time-of-day                                           1           1.1e-05       1.1e-05
org-agenda-mark-header-line                                   1           9e-06         9e-06
org-agenda-deadline-face                                      3           8e-06         2.666...e-06
org-remove-uniherited-tags                                    5           8e-06         1.6e-06
org-agenda-set-mode-name                                      1           7e-06         7e-06
org-remove-flyspell-overlays-in                               1           7e-06         7e-06
org-add-hook                                                  2           6e-06         3e-06
org-float-time                                                6           5.999...e-06  1e-06
org-agenda-mark-clocking-task                                 1           5e-06         5e-06
org-overlays-in                                               3           4.999...e-06  1.666...e-06
org-downcase-keep-props                                       3           4e-06         1.333...e-06
org-get-todo-face                                             3           4e-06         1.333...e-06
org-region-active-p                                           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           2e-06         2e-06
org-add-prop-inherited                                        2           2e-06         1e-06
org-before-change-function                                    1           2e-06         2e-06
org-fit-agenda-window                                         1           1e-06         1e-06
org-agenda-ndays-to-span                                      2           1e-06         5e-07
org-font-lock-add-tag-faces                                   1           1e-06         1e-06

On Dec 31, 2009, at 02:45 , Carsten Dominik wrote:

> Hi Andrew, thanks!
> 
> The only thing I see now is this:
> 
> 1. Get the latest development version.  A week or two ago I made
>    an optimization that should speed up
> 
>    (org-entry-get nil "DEADLINE")
> 
>    quite a bit.
> 
> Let's see if that does help enough.
> 
> - Carsten
> 
> On Dec 30, 2009, at 8:40 PM, Andrew J. Korty wrote:
> 
>> On Dec 30, 2009, at 14:20 , Carsten Dominik wrote:
>> 
>>> 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'....
>> 
>> Yes to both -- see below for corrected listings of code and
>> profiling results.
>> 
>>> Also:
>>> 
>>> - Are you using property inheritance?
>>> - Are you relying on tag inheritance to check for @yard and @home?
>> 
>> No to both.
>> 
>>> - Are you using the latest version of Org-mode?
>> 
>> I'm using 6.33.
>> 
>> Btw, the single org file from which the agenda is generated contains
>> 323 headlines in the TODO state and 12,227 lines total.
>> 
>> 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-due-soon ()
>> (and (let ((time (org-entry-get nil "DEADLINE"))) ; not due or not
>> due soon
>>        (and time
>>             (org-deadline-close time)))
>>      (ajk/org-skip-position)))
>> 
>> (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))))
>> 
>> org-agenda
>> 1           1.997575      1.997575
>> org-let
>> 1           1.3057590000  1.3057590000
>> org-agenda-list
>> 1           1.305747      1.305747
>> org-agenda-get-day-entries
>> 1           1.279215      1.279215
>> ajk/org-agenda-skip-if-not-due-soon
>> 416         1.0349629999  0.0024878918
>> ajk/org-agenda-skip-if-due-soon
>> 416         0.9751669999  0.0023441514
>> org-entry-get
>> 422         0.9655619999  0.0022880616
>> org-entry-properties
>> 416         0.9618369999  0.0023121081
>> org-get-tags-at
>> 418         0.6982910000  0.0016705526
>> org-agenda-get-restriction-and-command
>> 1           0.691773      0.691773
>> org-up-heading-safe
>> 1055        0.6649149999  0.0006302511
>> org-agenda-get-scheduled
>> 1           0.6341589999  0.6341589999
>> org-agenda-get-deadlines
>> 1           0.5069330000  0.5069330000
>> org-agenda-skip-entry-if
>> 416         0.1385249999  0.0003329927
>> org-agenda-skip-if
>> 416         0.1372300000  0.0003298798
>> org-agenda-get-timestamps
>> 1           0.134207      0.134207
>> org-back-to-heading
>> 2439        0.0887650000  3.639...e-05
>> ajk/org-skip-position
>> 419         0.0583169999  0.0001391813
>> org-prepare-agenda
>> 1           0.023446      0.023446
>> org-prepare-agenda-buffers
>> 1           0.022988      0.022988
>> org-refresh-category-properties
>> 1           0.012406      0.012406
>> org-outline-level
>> 1696        0.0118750000  7.001...e-06
>> org-at-date-range-p
>> 101         0.009216      9.124...e-05
>> org-agenda-skip
>> 416         0.0086059999  2.068...e-05
>> org-deadline-close
>> 178         0.0084609999  4.753...e-05
>> org-get-tags-string
>> 424         0.0053519999  1.262...e-05
>> org-days-to-time
>> 178         0.0047240000  2.653...e-05
>> org-time-string-to-time
>> 178         0.0022689999  1.274...e-05
>> org-get-todo-state
>> 116         0.0022219999  1.915...e-05
>> org-agenda-get-blocks
>> 1           0.002071      0.002071
>> org-entry-is-done-p
>> 113         0.0019850000  1.756...e-05
>> org-agenda-get-sexps
>> 1           0.001713      0.001713
>> org-finalize-agenda
>> 1           0.001653      0.001653
>> org-split-string
>> 633         0.0015850000  2.503...e-06
>> org-agenda-dim-blocked-tasks
>> 1           0.001572      0.001572
>> org-parse-time-string
>> 183         0.0013499999  7.377...e-06
>> org-on-heading-p
>> 424         0.0012929999  3.049...e-06
>> org-get-property-block
>> 6           0.0011920000  0.0001986666
>> org-fit-window-to-buffer
>> 1           0.000942      0.000942
>> org-block-todo-from-children-or-siblings-or-parent
>> 2           0.000905      0.0004525
>> org-format-agenda-item
>> 2           0.0008860000  0.0004430000
>> org-remove-uniherited-tags
>> 627         0.0007880000  1.256...e-06
>> org-get-effort
>> 2           0.00074       0.00037
>> ajk/org-agenda-skip-if-tagged-for-home
>> 8           0.000539      6.7375e-05
>> org-get-wdays
>> 180         0.0004700000  2.611...e-06
>> org-get-category
>> 419         0.0004360000  1.040...e-06
>> org-trim
>> 111         0.0003769999  3.396...e-06
>> org-agenda-files
>> 3           0.000291      9.700...e-05
>> org-agenda-mode
>> 1           0.000287      0.000287
>> org-add-prop-inherited
>> 250         0.0002820000  1.128...e-06
>> org-time-string-to-absolute
>> 5           0.000258      5.159...e-05
>> org-finalize-agenda-entries
>> 1           0.000233      0.000233
>> org-switch-to-buffer-other-window
>> 1           0.000217      0.000217
>> org-get-priority
>> 2           0.000194      9.7e-05
>> org-get-tags
>> 8           0.000168      2.1e-05
>> org-agenda-highlight-todo
>> 2           0.0001590000  7.950...e-05
>> org-closest-date
>> 4           0.000157      3.925e-05
>> org-uniquify
>> 5           0.0001439999  2.879...e-05
>> org-check-agenda-file
>> 2           0.000105      5.25e-05
>> org-get-agenda-file-buffer
>> 2           9.6e-05       4.8e-05
>> org-find-base-buffer-visiting
>> 2           8.5e-05       4.25e-05
>> org-date-to-gregorian
>> 8           8.1e-05       1.0125e-05
>> org-compile-prefix-format
>> 1           6.8e-05       6.8e-05
>> org-days-to-iso-week
>> 3           5.7e-05       1.9e-05
>> org-agenda-format-date-aligned
>> 1           4.8e-05       4.8e-05
>> org-add-props
>> 8           3.5e-05       4.375e-06
>> org-agenda-new-marker
>> 4           3.5e-05       8.75e-06
>> org-agenda-todayp
>> 2           3.3e-05       1.65e-05
>> org-agenda-add-inherited-tags
>> 2           2.999...e-05  1.499...e-05
>> org-agenda-reset-markers
>> 1           2.7e-05       2.7e-05
>> org-agenda-align-tags
>> 1           2.7e-05       2.7e-05
>> org-entries-lessp
>> 1           2.4e-05       2.4e-05
>> org-agenda-fontify-priorities
>> 1           1.4e-05       1.4e-05
>> org-agenda-mark-header-line
>> 1           1.1e-05       1.1e-05
>> org-activate-bracket-links
>> 1           9e-06         9e-06
>> org-get-at-bol
>> 4           9e-06         2.25e-06
>> org-hh:mm-string-to-minutes
>> 1           8e-06         8e-06
>> org-agenda-add-time-grid-maybe
>> 1           7e-06         7e-06
>> org-agenda-deadline-face
>> 2           7e-06         3.5e-06
>> org-add-hook
>> 2           7e-06         3.5e-06
>> org-agenda-set-mode-name
>> 1           6e-06         6e-06
>> org-float-time
>> 4           6e-06         1.5e-06
>> org-agenda-mark-clocking-task
>> 1           5e-06         5e-06
>> org-overlays-in
>> 3           4.999...e-06  1.666...e-06
>> org-downcase-keep-props
>> 2           4e-06         2e-06
>> org-unhighlight
>> 1           4e-06         4e-06
>> org-region-active-p
>> 1           3e-06         3e-06
>> org-file-menu-entry
>> 1           3e-06         3e-06
>> org-get-todo-face
>> 2           3e-06         1.5e-06
>> org-set-sorting-strategy
>> 1           2e-06         2e-06
>> org-agenda-ndays-to-span
>> 2           2e-06         1e-06
>> org-font-lock-add-tag-faces
>> 1           2e-06         2e-06
>> org-fit-agenda-window
>> 1           1e-06         1e-06
>> org-before-change-function
>> 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
> 
> 
> 

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Speeding up agenda display
  2009-12-31 17:46       ` Andrew J. Korty
@ 2010-01-02  7:50         ` Carsten Dominik
  2010-01-02 14:38           ` Andrew J. Korty
  0 siblings, 1 reply; 10+ messages in thread
From: Carsten Dominik @ 2010-01-02  7:50 UTC (permalink / raw)
  To: Andrew J. Korty; +Cc: Org Mode


On Dec 31, 2009, at 6:46 PM, Andrew J. Korty wrote:

> Shaved off half a second.  So that's something!

You can shave off another .5 seconds by pressing the selection key  
faster - Org
spends 0.46 seconds to wait for your keypress :-)

- Carsten

>
> ajk
>
> org-agenda                                                     
> 1           1.534166      1.534166
> org-let                                                        
> 1           1.070332      1.070332
> org-agenda-list                                                
> 1           1.070318      1.070318
> org-agenda-get-day-entries                                     
> 1           1.040049      1.040049
> ajk/org-agenda-skip-if-not-due-soon                            
> 416         0.5035600000  0.0012104807
> org-agenda-get-scheduled                                       
> 1           0.478835      0.478835
> org-agenda-get-restriction-and-command                         
> 1           0.463795      0.463795
> ajk/org-agenda-skip-if-due-soon                                
> 416         0.3743920000  0.0008999807
> org-entry-get                                                  
> 425         0.366792      0.00086304
> org-entry-properties                                           
> 416         0.3582450000  0.0008611658
> org-agenda-skip-entry-if                                       
> 416         0.3090569999  0.0007429254
> org-agenda-skip-if                                             
> 416         0.3077089999  0.0007396850
> org-agenda-get-timestamps                                      
> 1           0.302895      0.302895
> org-agenda-get-deadlines                                       
> 1           0.254305      0.254305
> org-back-to-heading                                            
> 991         0.1790740000  0.0001807003
> ajk/org-skip-position                                          
> 419         0.1317510000  0.0003144415
> org-at-date-range-p                                            
> 101         0.0377359999  0.0003736237
> org-prepare-agenda                                             
> 1           0.022929      0.022929
> org-prepare-agenda-buffers                                     
> 1           0.022543      0.022543
> org-agenda-skip                                                
> 416         0.0190569999  4.581...e-05
> org-refresh-category-properties                                
> 1           0.011837      0.011837
> org-get-tags-at                                                
> 3           0.009567      0.0031890000
> org-up-heading-safe                                            
> 11          0.0094379999  0.0008579999
> org-deadline-close                                             
> 177         0.0081639999  4.612...e-05
> org-finalize-agenda                                            
> 1           0.005829      0.005829
> org-agenda-dim-blocked-tasks                                   
> 1           0.005662      0.005662
> org-get-property-block                                         
> 9           0.005145      0.0005716666
> org-days-to-time                                               
> 177         0.0044610000  2.520...e-05
> org-get-todo-state                                             
> 119         0.004413      3.708...e-05
> org-format-agenda-item                                         
> 3           0.003384      0.0011279999
> org-get-effort                                                 
> 3           0.0031450000  0.0010483333
> org-block-todo-from-children-or-siblings-or-parent             
> 3           0.0028770000  0.0009590000
> org-time-string-to-time                                        
> 177         0.0021530000  1.216...e-05
> org-agenda-get-blocks                                          
> 1           0.002113      0.002113
> org-entry-is-done-p                                            
> 114         0.0020669999  1.813...e-05
> org-agenda-get-sexps                                           
> 1           0.001715      0.001715
> ajk/org-agenda-skip-if-tagged-for-home                         
> 11          0.001621      0.0001473636
> org-parse-time-string                                          
> 184         0.0012810000  6.961...e-06
> org-get-priority                                               
> 3           0.0009730000  0.0003243333
> org-fit-window-to-buffer                                       
> 1           0.000604      0.000604
> org-get-category                                               
> 420         0.0004230000  1.007...e-06
> org-get-wdays                                                  
> 180         0.0004199999  2.333...e-06
> org-trim                                                       
> 113         0.0003679999  3.256...e-06
> org-finalize-agenda-entries                                    
> 1           0.000337      0.000337
> org-get-tags                                                   
> 11          0.000304      2.763...e-05
> org-time-string-to-absolute                                    
> 7           0.0002929999  4.185...e-05
> org-agenda-mode                                                
> 1           0.000236      0.000236
> org-agenda-highlight-todo                                      
> 3           0.000225      7.5e-05
> org-agenda-files                                               
> 3           0.000218      7.266...e-05
> org-get-tags-string                                            
> 11          0.0001759999  1.599...e-05
> org-switch-to-buffer-other-window                              
> 1           0.000172      0.000172
> org-closest-date                                               
> 4           0.000158      3.95e-05
> org-outline-level                                              
> 25          0.0001409999  5.639...e-06
> org-uniquify                                                   
> 5           0.0001150000  2.300...e-05
> org-check-agenda-file                                          
> 2           9.5e-05       4.75e-05
> org-date-to-gregorian                                          
> 8           8.2e-05       1.025e-05
> org-get-agenda-file-buffer                                     
> 2           8.2e-05       4.1e-05
> org-split-string                                               
> 16          7.5e-05       4.6875e-06
> org-find-base-buffer-visiting                                  
> 2           7.2e-05       3.6e-05
> org-activate-bracket-links                                     
> 2           6.8e-05       3.4e-05
> org-days-to-iso-week                                           
> 3           5.699...e-05  1.899...e-05
> org-agenda-format-date-aligned                                 
> 1           5.5e-05       5.5e-05
> org-compile-prefix-format                                      
> 1           5.3e-05       5.3e-05
> org-add-props                                                  
> 11          4.9e-05       4.454...e-06
> org-agenda-fix-displayed-tags                                  
> 3           4.5e-05       1.5e-05
> org-agenda-new-marker                                          
> 6           4.4e-05       7.333...e-06
> org-entries-lessp                                              
> 2           3.999...e-05  1.999...e-05
> org-agenda-align-tags                                          
> 1           3.6e-05       3.6e-05
> org-agenda-todayp                                              
> 2           3.1e-05       1.55e-05
> org-on-heading-p                                               
> 11          3.000...e-05  2.727...e-06
> org-agenda-reset-markers                                       
> 1           2.1e-05       2.1e-05
> org-agenda-fontify-priorities                                  
> 1           2.1e-05       2.1e-05
> org-hh:mm-string-to-minutes                                    
> 2           1.499...e-05  7.499...e-06
> org-get-at-bol                                                 
> 5           1.2e-05       2.4e-06
> org-agenda-add-time-grid-maybe                                 
> 1           1.1e-05       1.1e-05
> org-get-time-of-day                                            
> 1           1.1e-05       1.1e-05
> org-agenda-mark-header-line                                    
> 1           9e-06         9e-06
> org-agenda-deadline-face                                       
> 3           8e-06         2.666...e-06
> org-remove-uniherited-tags                                     
> 5           8e-06         1.6e-06
> org-agenda-set-mode-name                                       
> 1           7e-06         7e-06
> org-remove-flyspell-overlays-in                                
> 1           7e-06         7e-06
> org-add-hook                                                   
> 2           6e-06         3e-06
> org-float-time                                                 
> 6           5.999...e-06  1e-06
> org-agenda-mark-clocking-task                                  
> 1           5e-06         5e-06
> org-overlays-in                                                
> 3           4.999...e-06  1.666...e-06
> org-downcase-keep-props                                        
> 3           4e-06         1.333...e-06
> org-get-todo-face                                              
> 3           4e-06         1.333...e-06
> org-region-active-p                                            
> 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           2e-06         2e-06
> org-add-prop-inherited                                         
> 2           2e-06         1e-06
> org-before-change-function                                     
> 1           2e-06         2e-06
> org-fit-agenda-window                                          
> 1           1e-06         1e-06
> org-agenda-ndays-to-span                                       
> 2           1e-06         5e-07
> org-font-lock-add-tag-faces                                    
> 1           1e-06         1e-06
>
> On Dec 31, 2009, at 02:45 , Carsten Dominik wrote:
>
>> Hi Andrew, thanks!
>>
>> The only thing I see now is this:
>>
>> 1. Get the latest development version.  A week or two ago I made
>>   an optimization that should speed up
>>
>>   (org-entry-get nil "DEADLINE")
>>
>>   quite a bit.
>>
>> Let's see if that does help enough.
>>
>> - Carsten
>>
>> On Dec 30, 2009, at 8:40 PM, Andrew J. Korty wrote:
>>
>>> On Dec 30, 2009, at 14:20 , Carsten Dominik wrote:
>>>
>>>> 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'....
>>>
>>> Yes to both -- see below for corrected listings of code and
>>> profiling results.
>>>
>>>> Also:
>>>>
>>>> - Are you using property inheritance?
>>>> - Are you relying on tag inheritance to check for @yard and @home?
>>>
>>> No to both.
>>>
>>>> - Are you using the latest version of Org-mode?
>>>
>>> I'm using 6.33.
>>>
>>> Btw, the single org file from which the agenda is generated contains
>>> 323 headlines in the TODO state and 12,227 lines total.
>>>
>>> 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-due-soon ()
>>> (and (let ((time (org-entry-get nil "DEADLINE"))) ; not due or not
>>> due soon
>>>       (and time
>>>            (org-deadline-close time)))
>>>     (ajk/org-skip-position)))
>>>
>>> (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))))
>>>
>>> org-agenda
>>> 1           1.997575      1.997575
>>> org-let
>>> 1           1.3057590000  1.3057590000
>>> org-agenda-list
>>> 1           1.305747      1.305747
>>> org-agenda-get-day-entries
>>> 1           1.279215      1.279215
>>> ajk/org-agenda-skip-if-not-due-soon
>>> 416         1.0349629999  0.0024878918
>>> ajk/org-agenda-skip-if-due-soon
>>> 416         0.9751669999  0.0023441514
>>> org-entry-get
>>> 422         0.9655619999  0.0022880616
>>> org-entry-properties
>>> 416         0.9618369999  0.0023121081
>>> org-get-tags-at
>>> 418         0.6982910000  0.0016705526
>>> org-agenda-get-restriction-and-command
>>> 1           0.691773      0.691773
>>> org-up-heading-safe
>>> 1055        0.6649149999  0.0006302511
>>> org-agenda-get-scheduled
>>> 1           0.6341589999  0.6341589999
>>> org-agenda-get-deadlines
>>> 1           0.5069330000  0.5069330000
>>> org-agenda-skip-entry-if
>>> 416         0.1385249999  0.0003329927
>>> org-agenda-skip-if
>>> 416         0.1372300000  0.0003298798
>>> org-agenda-get-timestamps
>>> 1           0.134207      0.134207
>>> org-back-to-heading
>>> 2439        0.0887650000  3.639...e-05
>>> ajk/org-skip-position
>>> 419         0.0583169999  0.0001391813
>>> org-prepare-agenda
>>> 1           0.023446      0.023446
>>> org-prepare-agenda-buffers
>>> 1           0.022988      0.022988
>>> org-refresh-category-properties
>>> 1           0.012406      0.012406
>>> org-outline-level
>>> 1696        0.0118750000  7.001...e-06
>>> org-at-date-range-p
>>> 101         0.009216      9.124...e-05
>>> org-agenda-skip
>>> 416         0.0086059999  2.068...e-05
>>> org-deadline-close
>>> 178         0.0084609999  4.753...e-05
>>> org-get-tags-string
>>> 424         0.0053519999  1.262...e-05
>>> org-days-to-time
>>> 178         0.0047240000  2.653...e-05
>>> org-time-string-to-time
>>> 178         0.0022689999  1.274...e-05
>>> org-get-todo-state
>>> 116         0.0022219999  1.915...e-05
>>> org-agenda-get-blocks
>>> 1           0.002071      0.002071
>>> org-entry-is-done-p
>>> 113         0.0019850000  1.756...e-05
>>> org-agenda-get-sexps
>>> 1           0.001713      0.001713
>>> org-finalize-agenda
>>> 1           0.001653      0.001653
>>> org-split-string
>>> 633         0.0015850000  2.503...e-06
>>> org-agenda-dim-blocked-tasks
>>> 1           0.001572      0.001572
>>> org-parse-time-string
>>> 183         0.0013499999  7.377...e-06
>>> org-on-heading-p
>>> 424         0.0012929999  3.049...e-06
>>> org-get-property-block
>>> 6           0.0011920000  0.0001986666
>>> org-fit-window-to-buffer
>>> 1           0.000942      0.000942
>>> org-block-todo-from-children-or-siblings-or-parent
>>> 2           0.000905      0.0004525
>>> org-format-agenda-item
>>> 2           0.0008860000  0.0004430000
>>> org-remove-uniherited-tags
>>> 627         0.0007880000  1.256...e-06
>>> org-get-effort
>>> 2           0.00074       0.00037
>>> ajk/org-agenda-skip-if-tagged-for-home
>>> 8           0.000539      6.7375e-05
>>> org-get-wdays
>>> 180         0.0004700000  2.611...e-06
>>> org-get-category
>>> 419         0.0004360000  1.040...e-06
>>> org-trim
>>> 111         0.0003769999  3.396...e-06
>>> org-agenda-files
>>> 3           0.000291      9.700...e-05
>>> org-agenda-mode
>>> 1           0.000287      0.000287
>>> org-add-prop-inherited
>>> 250         0.0002820000  1.128...e-06
>>> org-time-string-to-absolute
>>> 5           0.000258      5.159...e-05
>>> org-finalize-agenda-entries
>>> 1           0.000233      0.000233
>>> org-switch-to-buffer-other-window
>>> 1           0.000217      0.000217
>>> org-get-priority
>>> 2           0.000194      9.7e-05
>>> org-get-tags
>>> 8           0.000168      2.1e-05
>>> org-agenda-highlight-todo
>>> 2           0.0001590000  7.950...e-05
>>> org-closest-date
>>> 4           0.000157      3.925e-05
>>> org-uniquify
>>> 5           0.0001439999  2.879...e-05
>>> org-check-agenda-file
>>> 2           0.000105      5.25e-05
>>> org-get-agenda-file-buffer
>>> 2           9.6e-05       4.8e-05
>>> org-find-base-buffer-visiting
>>> 2           8.5e-05       4.25e-05
>>> org-date-to-gregorian
>>> 8           8.1e-05       1.0125e-05
>>> org-compile-prefix-format
>>> 1           6.8e-05       6.8e-05
>>> org-days-to-iso-week
>>> 3           5.7e-05       1.9e-05
>>> org-agenda-format-date-aligned
>>> 1           4.8e-05       4.8e-05
>>> org-add-props
>>> 8           3.5e-05       4.375e-06
>>> org-agenda-new-marker
>>> 4           3.5e-05       8.75e-06
>>> org-agenda-todayp
>>> 2           3.3e-05       1.65e-05
>>> org-agenda-add-inherited-tags
>>> 2           2.999...e-05  1.499...e-05
>>> org-agenda-reset-markers
>>> 1           2.7e-05       2.7e-05
>>> org-agenda-align-tags
>>> 1           2.7e-05       2.7e-05
>>> org-entries-lessp
>>> 1           2.4e-05       2.4e-05
>>> org-agenda-fontify-priorities
>>> 1           1.4e-05       1.4e-05
>>> org-agenda-mark-header-line
>>> 1           1.1e-05       1.1e-05
>>> org-activate-bracket-links
>>> 1           9e-06         9e-06
>>> org-get-at-bol
>>> 4           9e-06         2.25e-06
>>> org-hh:mm-string-to-minutes
>>> 1           8e-06         8e-06
>>> org-agenda-add-time-grid-maybe
>>> 1           7e-06         7e-06
>>> org-agenda-deadline-face
>>> 2           7e-06         3.5e-06
>>> org-add-hook
>>> 2           7e-06         3.5e-06
>>> org-agenda-set-mode-name
>>> 1           6e-06         6e-06
>>> org-float-time
>>> 4           6e-06         1.5e-06
>>> org-agenda-mark-clocking-task
>>> 1           5e-06         5e-06
>>> org-overlays-in
>>> 3           4.999...e-06  1.666...e-06
>>> org-downcase-keep-props
>>> 2           4e-06         2e-06
>>> org-unhighlight
>>> 1           4e-06         4e-06
>>> org-region-active-p
>>> 1           3e-06         3e-06
>>> org-file-menu-entry
>>> 1           3e-06         3e-06
>>> org-get-todo-face
>>> 2           3e-06         1.5e-06
>>> org-set-sorting-strategy
>>> 1           2e-06         2e-06
>>> org-agenda-ndays-to-span
>>> 2           2e-06         1e-06
>>> org-font-lock-add-tag-faces
>>> 1           2e-06         2e-06
>>> org-fit-agenda-window
>>> 1           1e-06         1e-06
>>> org-before-change-function
>>> 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
>>
>>
>>
>
>
>
> _______________________________________________
> 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

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Speeding up agenda display
  2010-01-02  7:50         ` Carsten Dominik
@ 2010-01-02 14:38           ` Andrew J. Korty
  2010-01-02 19:37             ` Carsten Dominik
  0 siblings, 1 reply; 10+ messages in thread
From: Andrew J. Korty @ 2010-01-02 14:38 UTC (permalink / raw)
  To: Org Mode

On Jan 2, 2010, at 02:50 , Carsten Dominik wrote:

> You can shave off another .5 seconds by pressing the selection key
> faster - Org spends 0.46 seconds to wait for your keypress :-)

Good point. :-)

I optimized things a bit more by caching skip positions and schedule, deadline, and tag data for each point a skip function is called in a hash.  An example hash value might be

  (((due-soon . t) (started . nil) (tagged-for-home . t)) . skip-position)

These savings add up when you have several slightly differing agendas in a block agenda.

ajk

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Speeding up agenda display
  2010-01-02 14:38           ` Andrew J. Korty
@ 2010-01-02 19:37             ` Carsten Dominik
  2010-01-03  3:40               ` Andrew J. Korty
  0 siblings, 1 reply; 10+ messages in thread
From: Carsten Dominik @ 2010-01-02 19:37 UTC (permalink / raw)
  To: Andrew J. Korty; +Cc: Org Mode


On Jan 2, 2010, at 3:38 PM, Andrew J. Korty wrote:

> On Jan 2, 2010, at 02:50 , Carsten Dominik wrote:
>
>> You can shave off another .5 seconds by pressing the selection key
>> faster - Org spends 0.46 seconds to wait for your keypress :-)
>
> Good point. :-)
>
> I optimized things a bit more by caching skip positions and  
> schedule, deadline, and tag data for each point a skip function is  
> called in a hash.  An example hash value might be
>
>  (((due-soon . t) (started . nil) (tagged-for-home . t)) . skip- 
> position)
>
> These savings add up when you have several slightly differing  
> agendas in a block agenda.

Hi Andrew,

that is interesting.  I have been thinking about caching often
but always stopped implementing it because, being a plain text
system, there is always the possibility that thinks are being
changed behind the back of the cache.  How are you handling
updating the cache?

- Carsten

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Speeding up agenda display
  2010-01-02 19:37             ` Carsten Dominik
@ 2010-01-03  3:40               ` Andrew J. Korty
  2010-01-03 12:42                 ` Carsten Dominik
  0 siblings, 1 reply; 10+ messages in thread
From: Andrew J. Korty @ 2010-01-03  3:40 UTC (permalink / raw)
  To: Org Mode

On Jan 2, 2010, at 14:37 , Carsten Dominik wrote:

> I have been thinking about caching often
> but always stopped implementing it because, being a plain text
> system, there is always the possibility that thinks are being
> changed behind the back of the cache.  How are you handling
> updating the cache?

Well, I'm only using the cache while org-agenda is running -- it doesn't persist beyond that.  So I don't have to worry about the agenda files changing, but I get no added benefit for subsequent agenda builds.

ajk

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Speeding up agenda display
  2010-01-03  3:40               ` Andrew J. Korty
@ 2010-01-03 12:42                 ` Carsten Dominik
  0 siblings, 0 replies; 10+ messages in thread
From: Carsten Dominik @ 2010-01-03 12:42 UTC (permalink / raw)
  To: Andrew J. Korty; +Cc: Org Mode


On Jan 3, 2010, at 4:40 AM, Andrew J. Korty wrote:

> On Jan 2, 2010, at 14:37 , Carsten Dominik wrote:
>
>> I have been thinking about caching often
>> but always stopped implementing it because, being a plain text
>> system, there is always the possibility that thinks are being
>> changed behind the back of the cache.  How are you handling
>> updating the cache?
>
> Well, I'm only using the cache while org-agenda is running -- it  
> doesn't persist beyond that.  So I don't have to worry about the  
> agenda files changing, but I get no added benefit for subsequent  
> agenda builds.


Ah, OK.

thanks.

- Carsten

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2010-01-03 12:42 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-12-30 19:06 Speeding up agenda display Andrew J. Korty
2009-12-30 19:20 ` Carsten Dominik
2009-12-30 19:40   ` Andrew J. Korty
2009-12-31  7:45     ` Carsten Dominik
2009-12-31 17:46       ` Andrew J. Korty
2010-01-02  7:50         ` Carsten Dominik
2010-01-02 14:38           ` Andrew J. Korty
2010-01-02 19:37             ` Carsten Dominik
2010-01-03  3:40               ` Andrew J. Korty
2010-01-03 12:42                 ` Carsten Dominik

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