emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
* Slow speed of week and month views
@ 2010-02-16 19:58 Matt Lundin
  2010-02-21  7:37 ` Carsten Dominik
  0 siblings, 1 reply; 14+ messages in thread
From: Matt Lundin @ 2010-02-16 19:58 UTC (permalink / raw)
  To: Org Mode

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

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

* Re: Slow speed of week and month views
  2010-02-16 19:58 Slow speed of week and month views Matt Lundin
@ 2010-02-21  7:37 ` Carsten Dominik
  2010-02-21 12:34   ` Matthew Lundin
  0 siblings, 1 reply; 14+ messages in thread
From: Carsten Dominik @ 2010-02-21  7:37 UTC (permalink / raw)
  To: Matt Lundin; +Cc: Org Mode

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

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

* Re: Slow speed of week and month views
  2010-02-21  7:37 ` Carsten Dominik
@ 2010-02-21 12:34   ` Matthew Lundin
  0 siblings, 0 replies; 14+ messages in thread
From: Matthew Lundin @ 2010-02-21 12:34 UTC (permalink / raw)
  To: Carsten Dominik; +Cc: Matt Lundin, Org Mode

Hi Carsten,

Carsten Dominik <carsten.dominik@gmail.com> writes:

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

Thanks so much for taking the time to look at this. The combination of
diary and org-mode works fine for now, so I believe I will stick with
that. 

If I use org-mode for appointments, I imagine I could reserve a single
diary.org file for appointments and limit weekly and monthly calendar
custom commands to that file.

Best,
Matt

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

* Re: Slow speed of week and month views
  2017-08-05 22:17     ` John Kitchin
@ 2017-08-05 22:33       ` Nicolas Goaziou
  0 siblings, 0 replies; 14+ messages in thread
From: Nicolas Goaziou @ 2017-08-05 22:33 UTC (permalink / raw)
  To: John Kitchin; +Cc: Karl Voit, emacs-orgmode@gnu.org

Hello,

John Kitchin <jkitchin@andrew.cmu.edu> writes:

> I can think of two possibilities for a future approach (besides a deep dive
> on profiling the current elisp to improve the speed there). They both
> involve some substantial coding though, and would probably add
> dependencies. I am curious what anyone things about these, or if there are
> other ideas.

These are interesting ideas, but I'd rather have a deep dive on
profiling the current Elisp.

> The main point of the database was to get a query language, persistence and
> good performance. I have also used caches to speed up using bibtex files,
> and my org-contacts with reasonable performance. These have been all elisp,
> with no additional dependencies. Maybe one could do something similar to
> keep an agenda cache that is persistent and updated via hook
> functions.

If an agenda cache is required, it can be very simple. Associate entries
to agenda files. Whenever a file is modified, drop all the entries. No
need to refresh it IMO. I doubt many agenda files are modified between
two agenda calls.

Regards,

-- 
Nicolas Goaziou

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

* Re: Slow speed of week and month views
  2017-08-05 21:09   ` Karl Voit
  2017-08-05 22:17     ` John Kitchin
@ 2017-08-05 22:35     ` Nicolas Goaziou
  2017-08-06  8:00       ` Karl Voit
  1 sibling, 1 reply; 14+ messages in thread
From: Nicolas Goaziou @ 2017-08-05 22:35 UTC (permalink / raw)
  To: Karl Voit; +Cc: Karl Voit, emacs-orgmode

Hello,

Karl Voit <devnull@Karl-Voit.at> writes:

> My daily agenda takes twenty seconds, my weekly approximately a
> minute and generating a monthly agenda is something I can only do
> when I plan to leave the computer for a longer break.
>
> Org-mode does not scale well, I'm afraid.
>
> Repeatedly going through all agenda files does not seem to be a very
> reasonable design choice for the general use-case. I would like to
> see an alternative approach for the future of Org-mode.

Well, we would at least need to profiling report as a starting point.
Could you provide one?

Regards,

-- 
Nicolas Goaziou

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

* Re: Slow speed of week and month views
  2017-08-05 22:35     ` Nicolas Goaziou
@ 2017-08-06  8:00       ` Karl Voit
  2017-08-06  8:15         ` Nicolas Goaziou
  0 siblings, 1 reply; 14+ messages in thread
From: Karl Voit @ 2017-08-06  8:00 UTC (permalink / raw)
  To: emacs-orgmode

* Nicolas Goaziou <mail@nicolasgoaziou.fr> wrote:
> Hello,

Hi Nicolas,

> Karl Voit <devnull@Karl-Voit.at> writes:
>
>> My daily agenda takes twenty seconds, my weekly approximately a
>> minute and generating a monthly agenda is something I can only do
>> when I plan to leave the computer for a longer break.
>>
>> Org-mode does not scale well, I'm afraid.
>
> Well, we would at least need to profiling report as a starting point.
> Could you provide one?

First: I've occasionally mentioned all kinds of performance issues
over the last years. I even started threads on how to improve things
on a completely new level.

I can provide many performance annoyances that affect me on a daily
basis.

So I am glad to be able to improve the situation for anybody. I have
had slow agenda performance for many years and I had to live with
it.

Here is a current profiling report from my daily agenda:

- command-execute                                               21948  98%
 - call-interactively                                           21948  98%
  - my-org-agenda                                               21518  96%
   - if                                                         21518  96%
    - org-agenda-list                                           21518  96%
     - byte-code                                                21518  96%
      - byte-code                                               18530  82%
       - apply                                                  18530  82%
        - org-agenda-get-day-entries                            18530  82%
         - #<compiled 0x374b19>                                 14961  66%
          - org-agenda-get-scheduled                            14957  66%
           - byte-code                                          13977  62%
            - org-is-habit-p                                     6424  28%
             - org-entry-get                                     6236  27%
              - org--property-local-values                       5876  26%
               - org-get-property-block                          4258  19%
                - org-inlinetask-in-task-p                       1619   7%
                   org-inlinetask-outline-regexp                    4   0%
                - org-back-to-heading                            1512   6%
                 - funcall                                       1512   6%
                  - #<compiled 0x53b0215>                        1512   6%
                     outline-back-to-heading                     1041   4%
                  org-before-first-heading-p                      360   1%
                  org-get-limited-outline-regexp                   19   0%
            - org-at-planning-p                                  3396  15%
             - funcall                                           2796  12%
              - #<compiled 0xabed2b>                             2796  12%
               - org-inlinetask-in-task-p                        1202   5%
                  org-inlinetask-outline-regexp                    12   0%
               - org-back-to-heading                             1075   4%
                - funcall                                        1071   4%
                 - #<compiled 0x53ae983>                         1071   4%
                    outline-back-to-heading                       575   2%
                 org-get-limited-outline-regexp                    12   0%
            - org-get-todo-state                                 2044   9%
             - org-back-to-heading                               1456   6%
              - funcall                                          1456   6%
               - #<compiled 0x53aec35>                           1456   6%
                  outline-back-to-heading                        1021   4%
            + org-agenda-skip                                     528   2%
            + org-get-tags-at                                     276   1%
            + org-agenda--timestamp-to-absolute                    96   0%
            + org-habit-parse-todo                                 65   0%
            + org-agenda-format-item                               32   0%
              org-get-priority                                     16   0%
              byte-code                                             8   0%
              string-prefix-p                                       4   0%
              org-outline-level                                     4   0%
         - #<compiled 0x374ae3>                                  2237  10%
          - org-agenda-get-deadlines                             2237  10%
           - byte-code                                           1899   8%
            - org-at-planning-p                                   896   4%
             - funcall                                            736   3%
              - #<compiled 0xabed2b>                              736   3%
               - org-back-to-heading                              284   1%
                - funcall                                         280   1%
                 - #<compiled 0x5145e8f>                          280   1%
                    outline-back-to-heading                       144   0%
               - org-inlinetask-in-task-p                         280   1%
                  org-inlinetask-outline-regexp                     4   0%
                 org-get-limited-outline-regexp                     4   0%
            - org-get-todo-state                                  599   2%
             - org-back-to-heading                                399   1%
              - funcall                                           399   1%
               - #<compiled 0x514547b>                            399   1%
                - outline-back-to-heading                         251   1%
                   outline-on-heading-p                             4   0%
            + org-agenda-skip                                     104   0%
            + org-agenda--timestamp-to-absolute                    12   0%
             abbreviate-file-name                                   4   0%
         - #<compiled 0x374b3d>                                  1308   5%
          - org-agenda-get-blocks                                 688   3%
           - byte-code                                            360   1%
            - org-agenda-skip                                      88   0%
               org-in-src-block-p                                  12   0%
               org-end-of-subtree                                   4   0%
            - org-get-todo-state                                    4   0%
             - org-back-to-heading                                  4   0%
              - funcall                                             4   0%
               - #<compiled 0x547456b>                              4   0%
                  outline-back-to-heading                           4   0%
            - org-get-tags-at                                       4   0%
             - funcall                                              4   0%
              - #<compiled 0x54745d7>                               4   0%
               - funcall                                            4   0%
                - #<compiled 0x5110c41>                             4   0%
                   match-string-no-properties                       4   0%
              org-get-priority                                      4   0%
              time-to-days                                          4   0%
          + org-agenda-get-timestamps                             620   2%
         + #<compiled 0x374b29>                                    24   0%
      - org-agenda-prepare                                       1952   8%
       - org-agenda-prepare-buffers                              1848   8%
        - funcall                                                1844   8%
         - #<compiled 0x53d5ed1>                                 1844   8%
          + org-end-of-subtree                                    596   2%
          + org-refresh-category-properties                       252   1%
          + org-at-heading-p                                      172   0%
          + org-set-regexps-and-options                           120   0%
          + org-in-commented-heading-p                              8   0%
            org-check-agenda-file                                   4   0%
       + org-agenda-mode                                          104   0%
      + org-agenda-finalize                                       772   3%
      + org-get-entries-from-diary                                196   0%
      + org-agenda-finalize-entries                                28   0%
        put-text-property                                           8   0%
  + counsel-M-x                                                   430   1%
+ ...                                                             334   1%
+ timer-event-handler                                              76   0%
  mouse-fixup-help-message                                         10   0%

You can find my personal setup on
https://github.com/novoid/dot-emacs/blob/master/config.org

Things related to my agenda start at
https://github.com/novoid/dot-emacs/blob/master/config.org#agenda
(the report is from my non-work files)

-- 
get mail|git|SVN|photos|postings|SMS|phonecalls|RSS|CSV|XML into Org-mode:
       > get Memacs from https://github.com/novoid/Memacs <
Personal Information Management > http://Karl-Voit.at/tags/pim/
Emacs-related > http://Karl-Voit.at/tags/emacs/

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

* Re: Slow speed of week and month views
  2017-08-06  8:00       ` Karl Voit
@ 2017-08-06  8:15         ` Nicolas Goaziou
  2017-08-06  9:01           ` Karl Voit
  0 siblings, 1 reply; 14+ messages in thread
From: Nicolas Goaziou @ 2017-08-06  8:15 UTC (permalink / raw)
  To: Karl Voit; +Cc: Karl Voit, emacs-orgmode

Hello,

Karl Voit <devnull@Karl-Voit.at> writes:

> First: I've occasionally mentioned all kinds of performance issues
> over the last years.

That's important indeed. But performance issues needs a proper profiling
report to be useful. The type of data being processed (i.e., something
that would be unusual, like 9k clock lines in a LOGBOOK drawer).

> I even started threads on how to improve things
> on a completely new level.

This doesn't ring a bell, sorry.

> I can provide many performance annoyances that affect me on a daily
> basis.

Great! Hopefully some of them can be fixed.

> So I am glad to be able to improve the situation for anybody. I have
> had slow agenda performance for many years and I had to live with
> it.

> Here is a current profiling report from my daily agenda:

Could you report it again running Org un-compiled (C-u M-x org-reload)?
Also, another report using "M-x elp-instrument-package" would be great,
too.

Thank you.

Regards,

-- 
Nicolas Goaziou

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

* Re: Slow speed of week and month views
  2017-08-06  8:15         ` Nicolas Goaziou
@ 2017-08-06  9:01           ` Karl Voit
  2017-08-06  9:13             ` Adam Porter
  2017-08-06  9:26             ` Nicolas Goaziou
  0 siblings, 2 replies; 14+ messages in thread
From: Karl Voit @ 2017-08-06  9:01 UTC (permalink / raw)
  To: emacs-orgmode

Hi Nicolas,

* Nicolas Goaziou <mail@nicolasgoaziou.fr> wrote:
>
> Karl Voit <devnull@Karl-Voit.at> writes:
>
>> First: I've occasionally mentioned all kinds of performance issues
>> over the last years.

btw, working within my Memacs agenda [1] with a bit under a million
lines of Org-mode is the worst case scenario from my point of view
so far. Jumping from one day to another could lead to waiting times
of minutes.

And then there is the single-thread issue which results in 100%
CPU-core usage on only one of my four cores.

If you consider modern intel i5 CPUs (like mine) and the fairly
moderate data package of a few Megabytes, this is hard to explain to
someone who has IT/programming background but no Emacs experience.

> That's important indeed. But performance issues needs a proper profiling
> report to be useful. The type of data being processed (i.e., something
> that would be unusual, like 9k clock lines in a LOGBOOK drawer).

I totally agree.

With a fairly modified configuration (like mine on [0]) and a large
set of long Org-mode files I can't publish, it is hard to do
analysis here. So I can offer to report any performance annoyances
and anything you need to execute (report) on my side.

My Org-mode is from git/maint. Currently: release_9.0.3-261-g62dc27
but I can upgrade any time to the newest maint commit.

>> I even started threads on how to improve things
>> on a completely new level.
>
> This doesn't ring a bell, sorry.

This was a comment, not a complaint ;-)

>> So I am glad to be able to improve the situation for anybody. I have
>> had slow agenda performance for many years and I had to live with
>> it.
>
>> Here is a current profiling report from my daily agenda:
>
> Could you report it again running Org un-compiled (C-u M-x org-reload)?
> Also, another report using "M-x elp-instrument-package" would be great,
> too.

Sure:

I just learned about elp-instrument-package. What prefixes are of interest to
you?


un-compiled agenda profiler-report:

The output here seems very nasty. I put the exported result for temporarily on:
http://Karl-Voit.at/temp/2017-08-06_org-mode_agenda_profile_report_un-compiled.log

- command-execute                                               21982  86%
- call-interactively                                           21982  86%
- counsel-M-x                                                 17686  69%
- ivy-read                                                   17669  69%
- read-from-minibuffer                                      17529  69%
- minibuffer-inactive-mode                                 17367  68%
- run-mode-hooks                                          17367  68%
- run-hooks                                              17367  68%
- yankpad-local-category-to-major-mode                  17367  68%
 - yankpad--categories                                  17367  68%
  - yankpad--file-elements                              17359  68%
   - org-element-parse-buffer                           17282  68%
    - save-excursion                                    17027  67%
     - org-element--parse-elements                      17027  67%
      - save-excursion                                  17027  67%
       - let                                            17027  67%
        - while                                         17027  67%
         - let*                                         17027  67%
          - cond                                        17019  67%
           - org-element--parse-elements                17019  67%
            - save-excursion                            17019  67%
             - let                                      17019  67%
              - while                                   17019  67%
               - let*                                   17019  67%
                - cond                                  17019  67%
                 - org-element--parse-elements              17019  67%
                  - save-excursion                      17019  67%
                   - let                                17015  67%
                    - while                             17015  67%
                     - let*                             17015  67%
                      - cond                            17015  67%
                       - org-element--parse-elements              17015  67%
                        - save-excursion                17007  66%
                         - let                          17007  66%
                          - while                       17003  66%
                           - let*                       16999  66%
                            - cond                      16590  65%
                             - org-element--parse-objects              16586  65%
                              - save-excursion              16586  65%
                               - save-restriction              16586  65%
                                - let                   16302  64%
                                 - while                16294  64%
                                  - let                 16242  63%
                                   - setq               16242  63%
                                    - cons              16242  63%
                                     - if               16242  63%
                                      - org-element--parse-objects              16238  63%
                                       - save-excursion              16234  63%
                                        - save-restriction              16234  63%
                                         - let              16234  63%
                                          - while              16230  63%
                                           - and              16230  63%
                                            - setq              16230  63%
                                             - org-element--object-lex              16230  63%
                                              - if              16230  63%
                                               - let*              16230  63%
                                                - save-excursion              16230  63%
                                                 - while              16230  63%
                                                  - let              16222  63%
                                                   - if              16190  63%
                                                    - progn              16190  63%
                                                     - insert-before-markers              16190  63%
                                                      - org-habit-build-graph              16190  63%
                                                       - let*              16190  63%
                                                        - while              16190  63%
                                                         - let*              16190  63%
                                                          - if              16190  63%
                                                           - save-current-buffer              16186  63%
                                                            - save-excursion              16186  63%
                                                             - save-restriction              16186  63%
                                                              - let              16186  63%
                                                               - let              16186  63%
                                                                - while              16186  63%
                                                                 - let*              16186  63%
                                                                  - cond              16186  63%
                                                                   - funcall              16186  63%
                                                                    - #<lambda 0xdbf41b167>              12831  50%
                                                                     - setq              12831  50%
                                                                      - cons              12831  50%
                                                                       - org-agenda-get-scheduled              12831  50%
                                                                        - let*              12831  50%
                                                                         - while              12831  50%
                                                                          - catch              11947  47%
                                                                           - let*               7991  31%
                                                                            - and               5499  21%
                                                                             - org-is-habit-p               5499  21%
                                                                              - string=               5499  21%
                                                                               - org-entry-get               5363  21%
                                                                                - org--property-local-values               5019  19%
                                                                                 - org-get-property-block               3675  14%
                                                                                  - org-inlinetask-in-task-p               1520   5%
                                                                                   - save-excursion               1408   5%
                                                                                    - let*                888   3%
                                                                                     - or                880   3%
                                                                                      - and                872   3%
                                                                                         progn                316   1%
                                                                                        looking-at-p                  4   0%
                                                                                     - org-inlinetask-outline-regexp                  4   0%
                                                                                        let                  4   0%
                                                                                  - org-back-to-heading               1315   5%
                                                                                   - funcall               1311   5%
                                                                                    - #<compiled 0xf0fcdb>               1311   5%
                                                                                       outline-back-to-heading                955   3%
                                                                                    org-before-first-heading-p                324   1%
                                                                                  - org-get-limited-outline-regexp                 28   0%
                                                                                   - cond                 28   0%
                                                                                      not                 24   0%
                                                                                      let*                  4   0%
                                                                                  member-ignore-case                  4   0%
                                                                            - let               1832   7%
                                                                             - unwind-protect               1788   7%
                                                                              - progn               1788   7%
                                                                               - org-get-todo-state               1636   6%
                                                                                - org-back-to-heading               1164   4%
                                                                                 - funcall               1164   4%
                                                                                  - #<compiled 0xefeb49>               1164   4%
                                                                                   - outline-back-to-heading                812   3%
                                                                                      outline-on-heading-p                  4   0%
                                                                            - save-excursion                472   1%
                                                                             - let*                460   1%
                                                                              - org-get-tags-at                344   1%
                                                                               - funcall                344   1%
                                                                                - #<compiled 0x15e9259>                344   1%
                                                                                 - funcall                344   1%
                                                                                  - #<compiled 0x161ccf5>                344   1%
                                                                                   - org-up-heading-safe                320   1%
                                                                                      org-outline-level                 28   0%
                                                                                    - funcall                  8   0%
                                                                                     - #<compiled 0xaccfe1>                  8   0%
                                                                                      - org-back-to-heading                  8   0%
                                                                                       - funcall                  8   0%
                                                                                        - #<compiled 0x38d6a5>                  8   0%
                                                                                         - outline-back-to-heading                  8   0%
                                                                                            outline-on-heading-p                  8   0%
                                                                                   - org-back-to-heading                 12   0%
                                                                                    - funcall                 12   0%
                                                                                     - #<compiled 0x161cc6b>                 12   0%
                                                                                        outline-back-to-heading                 12   0%
                                                                                     match-string-no-properties                  8   0%
                                                                              - org-agenda-format-item                 36   0%
                                                                               - let*                 36   0%
                                                                                - let                 36   0%
                                                                                 - unwind-protect                 36   0%
                                                                                  - progn                 36   0%
                                                                                   - let*                 36   0%
                                                                                    - org-agenda-get-category-icon                 28   0%
                                                                                     - catch                 28   0%
                                                                                      - let                 28   0%
                                                                                       - while                 28   0%
                                                                                        - if                 28   0%
                                                                                         - progn                 28   0%
                                                                                          - if                 28   0%
                                                                                           - throw                 28   0%
                                                                                            - apply                 28   0%
                                                                                             - create-image                 28   0%
                                                                                              - image-type                 28   0%
                                                                                               - image-type-from-file-header                 28   0%
                                                                                                  insert-file-contents-literally                 12   0%
                                                                                    - if                  4   0%
                                                                                     - progn                  4   0%
                                                                                      - if                  4   0%
                                                                                         setq                  4   0%
                                                                                      setq                  4   0%
                                                                              - org-add-props                 32   0%
                                                                               - org-agenda-new-marker                 16   0%
                                                                                  let                  4   0%
                                                                               - if                 12   0%
                                                                                - +                 12   0%
                                                                                   org-get-priority                 12   0%
                                                                              - make-string                 20   0%
                                                                               - org-reduced-level                 20   0%
                                                                                  org-outline-level                 12   0%
                                                                              - and                 16   0%
                                                                               - org-habit-parse-todo                 16   0%
                                                                                - save-excursion                 16   0%
                                                                                 - let*                 16   0%
                                                                                  - let*                  8   0%
                                                                                   - while                  8   0%
                                                                                    - and                  8   0%
                                                                                       funcall                  8   0%
                                                                                  - org-get-scheduled-time                  4   0%
                                                                                   - org-entry-get                  4   0%
                                                                                    - org-entry-properties                  4   0%
                                                                                     - funcall                  4   0%
                                                                                      - #<compiled 0xaadad7>                  4   0%
                                                                                       - org-back-to-heading                  4   0%
                                                                                        - funcall                  4   0%
                                                                                         - #<compiled 0x39ccdf5>                  4   0%
                                                                                            outline-back-to-heading                  4   0%
                                                                                  - org-no-properties                  4   0%
                                                                                   - nth                  4   0%
                                                                                    - org-heading-components                  4   0%
                                                                                     - org-back-to-heading                  4   0%
                                                                                      - funcall                  4   0%
                                                                                       - #<compiled 0x514a419>                  4   0%
                                                                                          outline-back-to-heading                  4   0%
                                                                                buffer-substring                  4   0%
                                                                            - cond                 80   0%
                                                                             - org-agenda--timestamp-to-absolute                 68   0%
                                                                              - condition-case                 64   0%
                                                                               - apply                 64   0%
                                                                                - org-time-string-to-absolute                 60   0%
                                                                                 - funcall                 28   0%
                                                                                  - #<compiled 0x42a89f1>                 28   0%
                                                                                     apply                 20   0%
                                                                                     org-parse-time-string                  4   0%
                                                                                 - org-closest-date                 12   0%
                                                                                  - time-to-days                 12   0%
                                                                                     time-to-day-in-year                  8   0%
                                                                                 - time-to-days                 12   0%
                                                                                  - time-to-day-in-year                 12   0%
                                                                                     date-leap-year-p                  8   0%
                                                                               org-get-wdays                  4   0%
                                                                             - and                  4   0%
                                                                                string-match-p                  4   0%
                                                                            - if                 28   0%
                                                                             - cond                 24   0%
                                                                              - or                 24   0%
                                                                               - not                 24   0%
                                                                                  memq                 24   0%
                                                                             - if                  4   0%
                                                                              - or                  4   0%
                                                                                 and                  4   0%
                                                                              string-prefix-p                  4   0%
                                                                           - if               3100  12%
                                                                            - let               3100  12%
                                                                             - unwind-protect               3036  11%
                                                                              - progn               3036  11%
                                                                               - org-at-planning-p               2928  11%
                                                                                - funcall               2396   9%
                                                                                 - #<compiled 0xabed2b>               2392   9%
                                                                                  - org-inlinetask-in-task-p               1176   4%
                                                                                   - save-excursion               1044   4%
                                                                                    - let*               1032   4%
                                                                                     - or               1028   4%
                                                                                      - and               1028   4%
                                                                                         progn                460   1%
                                                                                     - org-inlinetask-outline-regexp                  4   0%
                                                                                        let                  4   0%
                                                                                  - org-back-to-heading                828   3%
                                                                                   - funcall                828   3%
                                                                                    - #<compiled 0xf167e5>                828   3%
                                                                                       outline-back-to-heading                404   1%
                                                                                  - org-get-limited-outline-regexp                 32   0%
                                                                                   - cond                 32   0%
                                                                                      not                 32   0%
                                                                           - org-agenda-skip                844   3%
                                                                            - let                840   3%
                                                                             - if                584   2%
                                                                              - or                584   2%
                                                                                 save-excursion                224   0%
                                                                               - and                164   0%
                                                                                - org-end-of-subtree                136   0%
                                                                                 - org-back-to-heading                 52   0%
                                                                                  - funcall                 52   0%
                                                                                   - #<compiled 0x3a9b173>                 52   0%
                                                                                      outline-back-to-heading                 40   0%
                                                                                 org-in-src-block-p                 44   0%
                                                                    - #<lambda 0x299c1f6eb2a54011>               2239   8%
                                                                     - setq               2239   8%
                                                                      - org-agenda-get-deadlines               2239   8%
                                                                       - let*               2239   8%
                                                                        - while               2231   8%
                                                                         - catch               1867   7%
                                                                          - if                911   3%
                                                                           - let                911   3%
                                                                            - unwind-protect                907   3%
                                                                             - progn                907   3%
                                                                              - org-at-planning-p                835   3%
                                                                               - funcall                647   2%
                                                                                - #<compiled 0xabed2b>                647   2%
                                                                                 - org-back-to-heading                304   1%
                                                                                  - funcall                304   1%
                                                                                   - #<compiled 0x51968b5>                304   1%
                                                                                      outline-back-to-heading                152   0%
                                                                                 - org-inlinetask-in-task-p                228   0%
                                                                                  - save-excursion                184   0%
                                                                                   - let*                180   0%
                                                                                    - or                176   0%
                                                                                       and                176   0%
                                                                                    - org-inlinetask-outline-regexp                  4   0%
                                                                                       let                  4   0%
                                                                                 - org-get-limited-outline-regexp                  8   0%
                                                                                  - cond                  8   0%
                                                                                     not                  8   0%
                                                                          - let*                704   2%
                                                                           - let                640   2%
                                                                            - unwind-protect                628   2%
                                                                             - progn                628   2%
                                                                              - org-get-todo-state                564   2%
                                                                               - org-back-to-heading                352   1%
                                                                                - funcall                352   1%
                                                                                 - #<compiled 0x5196805>                352   1%
                                                                                    outline-back-to-heading                232   0%
                                                                           - cond                 20   0%
                                                                            - org-agenda--timestamp-to-absolute                 20   0%
                                                                             - condition-case                 20   0%
                                                                              - apply                 20   0%
                                                                               - org-time-string-to-absolute                 16   0%
                                                                                  time-to-days                  8   0%
                                                                                - org-closest-date                  4   0%
                                                                                   org-parse-time-string                  4   0%
                                                                                - funcall                  4   0%
                                                                                 - #<compiled 0xa7f257>                  4   0%
                                                                                    apply                  4   0%
                                                                           - if                  4   0%
                                                                              org-get-wdays                  4   0%
                                                                          - org-agenda-skip                252   0%
                                                                           - let                252   0%
                                                                            - if                176   0%
                                                                             - or                176   0%
                                                                                save-excursion                 56   0%
                                                                              - and                 44   0%
                                                                               - org-end-of-subtree                 32   0%
                                                                                - org-back-to-heading                 16   0%
                                                                                 - funcall                 16   0%
                                                                                  - #<compiled 0x4d3e4a1>                 16   0%
                                                                                     outline-back-to-heading                 16   0%
                                                                                org-in-src-block-p                  8   0%
                                                                        - list                  8   0%
                                                                         - format                  8   0%
                                                                            abbreviate-file-name                  8   0%
                                                                    - #<lambda 0xd02f2dc11b>               1096   4%
                                                                     - setq               1096   4%
                                                                      - cons               1096   4%
                                                                       - org-agenda-get-blocks                644   2%
                                                                        - let*                644   2%
                                                                         - while                640   2%
                                                                          - catch                348   1%
                                                                           - let                200   0%
                                                                            - setq                 96   0%
                                                                             - time-to-days                  8   0%
                                                                              - org-time-string-to-time                  4   0%
                                                                               - funcall                  4   0%
                                                                                - #<compiled 0xa5f001>                  4   0%
                                                                                   org-parse-time-string                  4   0%
                                                                            - if                  8   0%
                                                                             - save-excursion                  8   0%
                                                                              - setq                  4   0%
                                                                                 org-get-category                  4   0%
                                                                              - if                  4   0%
                                                                               - setq                  4   0%
                                                                                - org-get-tags-at                  4   0%
                                                                                 - funcall                  4   0%
                                                                                  - #<compiled 0x194f7af>                  4   0%
                                                                                   - funcall                  4   0%
                                                                                    - #<compiled 0x194f7f7>                  4   0%
                                                                                       match-string-no-properties                  4   0%
                                                                           - org-agenda-skip                148   0%
                                                                            - let                148   0%
                                                                             - if                 64   0%
                                                                              - or                 64   0%
                                                                                 save-excursion                 40   0%
                                                                                 org-in-src-block-p                  8   0%
                                                                               - and                  4   0%
                                                                                  org-end-of-subtree                  4   0%
                                                                         - list                  4   0%
                                                                            format                  4   0%
                                                                       - org-agenda-get-timestamps                452   1%
                                                                        - let*                452   1%
                                                                         - while                452   1%
                                                                          - catch                308   1%
                                                                           - let                236   0%
                                                                            - unwind-protect                232   0%
                                                                             - progn                232   0%
                                                                              - if                204   0%
                                                                               - or                204   0%
                                                                                - org-at-planning-p                108   0%
                                                                                 - funcall                 72   0%
                                                                                  - #<compiled 0xabed2b>                 72   0%
                                                                                   - org-inlinetask-in-task-p                 40   0%
                                                                                    - save-excursion                 36   0%
                                                                                     - let*                 36   0%
                                                                                      - or                 36   0%
                                                                                       - and                 36   0%
                                                                                          progn                 12   0%
                                                                                   - org-back-to-heading                 28   0%
                                                                                    - funcall                 28   0%
                                                                                     - #<compiled 0xe2c1bd>                 28   0%
                                                                                        outline-back-to-heading                 12   0%
                                                                                - org-at-date-range-p                 20   0%
                                                                                   funcall                 20   0%
                                                                                  org-before-first-heading-p                 20   0%
                                                                              - org-agenda-skip                 28   0%
                                                                               - let                 28   0%
                                                                                - if                 20   0%
                                                                                 - or                 20   0%
                                                                                    org-in-src-block-p                  4   0%
                                                                                  - and                  4   0%
                                                                                     org-end-of-subtree                  4   0%
                                                                                    save-excursion                  4   0%
                                                                           - let*                 72   0%
                                                                            - org-get-todo-state                 40   0%
                                                                             - org-back-to-heading                 28   0%
                                                                              - funcall                 28   0%
                                                                               - #<compiled 0xe63629>                 28   0%
                                                                                  outline-back-to-heading                 28   0%
                                                                            - save-excursion                  8   0%
                                                                             - let*                  8   0%
                                                                              - org-get-tags-at                  8   0%
                                                                               - funcall                  8   0%
                                                                                - #<compiled 0xa96477>                  8   0%
                                                                                 - funcall                  8   0%
                                                                                  - #<compiled 0xa964bf>                  8   0%
                                                                                     org-up-heading-safe                  8   0%
                                                                            - if                  8   0%
                                                                             - and                  4   0%
                                                                              - if                  4   0%
                                                                               - /=                  4   0%
                                                                                - org-agenda--timestamp-to-absolute                  4   0%
                                                                                 - condition-case                  4   0%
                                                                                  - apply                  4   0%
                                                                                     org-time-string-to-absolute                  4   0%
                                                                    - #<lambda 0xdbf41b167>                 20   0%
                                                                     - setq                 20   0%
                                                                      - cons                 20   0%
                                                                       - org-agenda-get-sexps                 20   0%
                                                                        - let*                 20   0%
                                                                           while                 20   0%
                                                           - org-habit-get-faces                  4   0%
                                                            - let*                  4   0%
                                                             - if                  4   0%
                                                              - org-habit-deadline                  4   0%
                                                                 let                  4   0%
                                                   - setq                 32   0%
                                                    - cond                 32   0%
                                                     - let*                 32   0%
                                                      - cond                 32   0%
                                                       - let                 32   0%
                                                        - and                 28   0%
                                                         - org-element-link-parser                 20   0%
                                                          - catch                 20   0%
                                                           - let                 20   0%
                                                              cond                 20   0%
                                                         - org-element-bold-parser                  4   0%
                                                          - save-excursion                  4   0%
                                                           - if                  4   0%
                                                              progn                  4   0%
                                                        - or                  4   0%
                                                         - and                  4   0%
                                                          - org-element-underline-parser                  4   0%
                                                             save-excursion                  4   0%
                                                    and                  8   0%
                                          - if                  4   0%
                                           - apply                  4   0%
                                              org-element-set-contents                  4   0%
                                  - and                    52   0%
                                   - setq                  52   0%
                                    - org-element--object-lex                 48   0%
                                     - if                  48   0%
                                      - let*                 44   0%
                                       - save-excursion                 44   0%
                                        - while                 44   0%
                                           and                 40   0%
                                           let                  4   0%
                                 - if                       8   0%
                                  - apply                   4   0%
                                   - org-element-set-contents                  4   0%
                                      cond                  4   0%
                                  - let                     4   0%
                                   - setq                   4   0%
                                    - cons                  4   0%
                                     - if                   4   0%
                                      - org-element-put-property                  4   0%
                                       - if                  4   0%
                                          org-add-props                  4   0%
                                - if                      276   1%
                                 - let                    276   1%
                                  - org-indent-add-properties                276   1%
                                   - let                  276   1%
                                    - unwind-protect                276   1%
                                     - progn                276   1%
                                      - save-excursion                276   1%
                                       - save-restriction                276   1%
                                        - let*                276   1%
                                         - let*                276   1%
                                          - unwind-protect                276   1%
                                           - progn                276   1%
                                            - while                276   1%
                                             - cond                276   1%
                                              - org-at-item-p                212   0%
                                               - save-excursion                212   0%
                                                - and                212   0%
                                                 - org-list-in-valid-context-p                212   0%
                                                  - not                212   0%
                                                   - org-in-block-p                212   0%
                                                    - funcall                208   0%
                                                     - #<compiled 0x55fbbbb>                196   0%
                                                      - org-between-regexps-p                144   0%
                                                       - org-in-regexp                 16   0%
                                                        - funcall                 12   0%
                                                           #<compiled 0xd19097>                 12   0%
                                                        outline-next-heading                 28   0%
                                                        outline-previous-heading                 24   0%
                                              - org-indent-set-line-properties                 64   0%
                                               - let*                 36   0%
                                                - cond                 12   0%
                                                 - concat                 12   0%
                                                  - org-add-props                  8   0%
                                                     concat                  4   0%
                                                  org-add-props                 12   0%
                                                  add-text-properties                  8   0%
                                               - org-list-item-body-column                 20   0%
                                                - save-excursion                 20   0%
                                                 - if                 16   0%
                                                  - +                  8   0%
                                                     progn                  8   0%
                                                    save-excursion                  4   0%
                                  goto-char                  4   0%
                               org-element--parse-elements                  4   0%
                            - org-element--current-element                381   1%
                             - save-excursion                381   1%
                              - let                       377   1%
                               - cond                     373   1%
                                - let                     241   0%
                                 - cond                   213   0%
                                  - cond                  149   0%
                                   - funcall                129   0%
                                    - #<compiled 0x51f78c1>                125   0%
                                     - server-execute-continuation                125   0%
                                      - funcall                125   0%
                                       - #<compiled 0x51f7937>                125   0%
                                        - #<compiled 0x51f7923>                125   0%
                                         - server-execute                125   0%
                                          - funcall                125   0%
                                           - #<compiled 0x51f7987>                125   0%
                                            - funcall                125   0%
                                             - #<compiled 0x51f79e9>                125   0%
                                              - server-visit-files                121   0%
                                               - apply                121   0%
                                                - ad-Advice-server-visit-files                121   0%
                                                 - #<compiled 0xda1221>                121   0%
                                                  - apply                121   0%
                                                   - #<compiled 0xd2dbe3>                121   0%
                                                    - find-file-noselect                121   0%
                                                     - find-file-noselect-1                106   0%
                                                      - after-find-file                106   0%
                                                       - normal-mode                106   0%
                                                        - fundamental-mode                104   0%
                                                         - run-mode-hooks                104   0%
                                                          - run-hooks                104   0%
                                                           - yankpad-local-category-to-major-mode                104   0%
                                                            - yankpad--categories                104   0%
                                                             - yankpad--file-elements                104   0%
                                                              - insert-file-contents                 56   0%
                                                               - org-indent-refresh-maybe                 56   0%
                                                                - org-indent-add-properties                 56   0%
                                                                 - org-at-item-p                 40   0%
                                                                  - org-list-in-valid-context-p                 40   0%
                                                                   - org-in-block-p                 40   0%
                                                                    - funcall                 40   0%
                                                                     - #<compiled 0x51ae903>                 40   0%
                                                                      - org-between-regexps-p                 32   0%
                                                                         org-in-regexp                  4   0%
                                                                        outline-next-heading                  4   0%
                                                                        outline-previous-heading                  4   0%
                                                                   org-list-item-body-column                  4   0%
                                                              - org-element-parse-buffer                 48   0%
                                                               - org-element--parse-elements                 48   0%
                                                                - org-element--parse-elements                 48   0%
                                                                 - org-element--parse-elements                 48   0%
                                                                  - org-element--parse-elements                 48   0%
                                                                   - org-element--parse-elements                 36   0%
                                                                    - org-element--parse-elements                 24   0%
                                                                     - org-element--parse-objects                 12   0%
                                                                      - org-element--object-lex                 12   0%
                                                                       - org-element-link-parser                  8   0%
                                                                        - funcall                  8   0%
                                                                           #<compiled 0xae4fe7>                  8   0%
                                                                     - org-element--parse-elements                  8   0%
                                                                        org-element--parse-elements                  4   0%
                                                                      - org-element--current-element                  4   0%
                                                                         org-element-item-parser                  4   0%
                                                                       org-element--current-element                  4   0%
                                                                    - org-element--parse-objects                  4   0%
                                                                       org-element--object-lex                  4   0%
                                                                      org-element--current-element                  4   0%
                                                                   - org-element--current-element                 12   0%
                                                                      org-element-table-parser                  4   0%
                                                        - funcall                  2   0%
                                                         - #<compiled 0x22c097>                  2   0%
                                                          - set-auto-mode                  2   0%
                                                             set-auto-mode-1                  2   0%
                                                     - create-file-buffer                 15   0%
                                                      - apply                 15   0%
                                                       - uniquify--create-file-buffer-advice                 15   0%
                                                          uniquify-rationalize-file-buffer-names                 15   0%
                                              - server-switch-buffer                  4   0%
                                               - apply                  4   0%
                                                - server-switch-buffer--with-editor-server-window-alist                  4   0%
                                                 - #<compiled 0xd303a9>                  4   0%
                                                    select-frame-set-input-focus                  4   0%
                                   - mapc                  20   0%
                                    - #<lambda 0x3e9d1a848d8f578e>                 20   0%
                                     - let                 20   0%
                                      - cond                 20   0%
                                       - cond                 20   0%
                                        - mapc                 20   0%
                                         - #<lambda 0x3e9d1a848d8f578e>                 20   0%
                                          - let                 20   0%
                                           - cond                 20   0%
                                            - cond                 20   0%
                                             - mapc                 20   0%
                                              - #<lambda 0x3e9d1a848d8f578e>                 20   0%
                                               - let                 20   0%
                                                - cond                 16   0%
                                                 - cond                 16   0%
                                                  - mapc                 12   0%
                                                   - #<lambda 0x3e9d1a848d8f578e>                  8   0%
                                                      let                  8   0%
                                                  org-element-type                  4   0%
                                  - org-element-plain-list-parser                 32   0%
                                   - or                    28   0%
                                    - org-element--list-struct                 28   0%
                                     - let                 28   0%
                                      - save-excursion                 24   0%
                                       - catch                 24   0%
                                        - while                 24   0%
                                         - cond                 24   0%
                                          - let                 24   0%
                                           - setq                 12   0%
                                            - cons                 12   0%
                                             - progn                 12   0%
                                              - let                  8   0%
                                               - list                  8   0%
                                                - and                  4   0%
                                                 - let                  4   0%
                                                  - unwind-protect                  4   0%
                                                     progn                  4   0%
                                             save-excursion                  8   0%
                                           - while                  4   0%
                                            - let                  4   0%
                                               setq                  4   0%
                                        and                  4   0%
                                   - save-excursion                  4   0%
                                    - let*                  4   0%
                                     - list                  4   0%
                                      - nconc                  4   0%
                                         list                  4   0%
                                  - org-element-paragraph-parser                  8   0%
                                   - save-excursion                  8   0%
                                    - let*                  8   0%
                                     - let                  8   0%
                                      - while                  8   0%
                                       - not                  8   0%
                                        - cond                  8   0%
                                         - not                  4   0%
                                            and                  4   0%
                                           save-excursion                  4   0%
                                  - looking-at                  4   0%
                                   - org-item-re                  4   0%
                                    - let                   4   0%
                                       cond                  4   0%
                                    org-element-drawer-parser                  4   0%
                                 - org-element--collect-affiliated-keywords                 28   0%
                                  - if                     28   0%
                                   - let                   20   0%
                                    - while                 12   0%
                                       and                  8   0%
                                     - let*                  4   0%
                                      - if                  4   0%
                                         or                  4   0%
                                - org-element-item-parser                 40   0%
                                 - save-excursion                 40   0%
                                  - let*                   28   0%
                                   - progn                 12   0%
                                      cond                  4   0%
                                   - org-element-put-property                  8   0%
                                    - let                   4   0%
                                     - org-list-get-tag                  4   0%
                                        org-list-get-nth                  4   0%
                                   - list                   4   0%
                                      list                  4   0%
                                     let                    4   0%
                                - progn                    40   0%
                                 - let*                    40   0%
                                  - org-get-limited-outline-regexp                 24   0%
                                   - cond                  24   0%
                                      not                  20   0%
                                      let*                  4   0%
                                  - org-at-heading-p                  4   0%
                                     outline-on-heading-p                  4   0%
                                - org-element-headline-parser                 28   0%
                                 - save-excursion                 28   0%
                                  - let*                   28   0%
                                     if                     8   0%
                                     and                    8   0%
                                     org-trim                  4   0%
                                   - min                    4   0%
                                    - save-excursion                  4   0%
                                       org-end-of-subtree                  4   0%
                                - org-element-paragraph-parser                 12   0%
                                 - save-excursion                 12   0%
                                  - let*                   12   0%
                                     save-excursion                  8   0%
                                   - let                    4   0%
                                    - while                  4   0%
                                     - not                  4   0%
                                      - cond                  4   0%
                                       - not                  4   0%
                                          and                  4   0%
                                - org-element-table-row-parser                  4   0%
                                 - save-excursion                  4   0%
                                  - let*                    4   0%
                                     and                    4   0%
                            - setq                         12   0%
                             - cons                         8   0%
                              - org-element-put-property                  8   0%
                               - if                         8   0%
                                  setcar                    8   0%
                        - org-element-property                  4   0%
                         - if                               4   0%
                            plist-get                       4   0%
                        - and                               4   0%
                         - org-element-property                  4   0%
                            if                              4   0%
          - org-element--current-element                    8   0%
           - save-excursion                                 8   0%
            - let                                           8   0%
             - cond                                         8   0%
              - org-element-headline-parser                  8   0%
               - save-excursion                             8   0%
                - let*                                      8   0%
                 - min                                      8   0%
                  - save-excursion                          8   0%
                     org-end-of-subtree                     8   0%
    - org-element--parse-elements                         255   1%
     - org-element--parse-elements                        255   1%
      - org-element--parse-elements                       243   0%
       - org-element--parse-elements                      243   0%
        - org-element--parse-elements                     159   0%
         - org-element--parse-elements                    119   0%
          - org-element--parse-elements                    55   0%
           - org-element--parse-elements                   40   0%
            - org-element--current-element                 24   0%
               org-get-limited-outline-regexp                  8   0%
               org-element-paragraph-parser                  4   0%
            - org-element--parse-elements                   8   0%
               org-element--current-element                  4   0%
             - org-element--parse-elements                  4   0%
              - org-element--current-element                  4   0%
                 org-element-paragraph-parser                  4   0%
            - org-element--parse-objects                    8   0%
               org-element--object-lex                      8   0%
           - org-element--current-element                  15   0%
              org-element-item-parser                      11   0%
          - org-element--parse-objects                     36   0%
             org-element--object-lex                       28   0%
           - org-element--parse-objects                     4   0%
              org-element--object-lex                       4   0%
          - org-element--current-element                   20   0%
             org-element-paragraph-parser                  12   0%
             org-get-limited-outline-regexp                  4   0%
           - org-at-heading-p                               4   0%
              outline-on-heading-p                          4   0%
         - org-element--parse-objects                      28   0%
          - org-element--parse-objects                     16   0%
             org-element--object-lex                       16   0%
          - org-element--object-lex                         8   0%
           - org-element-link-parser                        4   0%
            - funcall                                       4   0%
               #<compiled 0xae4fe7>                         4   0%
         - org-element--current-element                     8   0%
            org-element-item-parser                         4   0%
        - org-element--current-element                     72   0%
         - org-element--list-struct                        28   0%
          - funcall                                        28   0%
           - #<compiled 0x469e687>                         24   0%
              match-string-no-properties                    4   0%
              funcall                                       4   0%
           org-element-paragraph-parser                     8   0%
           org-element-quote-block-parser                   4   0%
         - org-element-src-block-parser                     4   0%
          - org-unescape-code-in-string                     4   0%
           - replace-regexp-in-string                       4   0%
              apply                                         4   0%
           org-element--collect-affiliated-keywords                  4   0%
           org-get-limited-outline-regexp                   4   0%
        - org-element--parse-objects                        8   0%
         - org-element--object-lex                          8   0%
          - org-element-link-parser                         4   0%
             funcall                                        4   0%
      - org-element--current-element                       12   0%
       - org-element-headline-parser                        8   0%
        - org-end-of-subtree                                8   0%
         - org-back-to-heading                              4   0%
          - funcall                                         4   0%
           - #<compiled 0x4674a3d>                          4   0%
              outline-back-to-heading                       4   0%
   - insert-file-contents                                  61   0%
    - org-indent-refresh-maybe                             44   0%
     - org-indent-add-properties                           44   0%
      - org-at-item-p                                      16   0%
       - org-list-in-valid-context-p                       16   0%
        - org-in-block-p                                   16   0%
           funcall                                         12   0%
        org-indent-set-line-properties                     12   0%
    - set-auto-coding                                      17   0%
     - find-auto-coding                                    17   0%
      - byte-code                                          17   0%
         sgml-html-meta-auto-coding-function                 17   0%
   - org-mode                                              16   0%
    - org-install-agenda-files-menu                        12   0%
     - org-agenda-files                                    12   0%
      - mapcar                                             12   0%
         #<compiled 0xac09f3>                              12   0%
    - org-set-regexps-and-options                           4   0%
     - org-remove-keyword-keys                              4   0%
        mapcar                                              4   0%
  - org-element-map                                         8   0%
   - funcall                                                8   0%
    - #<compiled 0x4d65559>                                 8   0%
     - #<compiled 0x4d6553d>                                8   0%
      - mapc                                                8   0%
       - #<compiled 0x4d6553d>                              8   0%
        - mapc                                              8   0%
         - #<compiled 0x4d6553d>                            8   0%
          - mapc                                            8   0%
           - #<compiled 0x4d6553d>                          8   0%
              mapc                                          4   0%
- ivy--exhibit                                                84   0%
- ivy--insert-minibuffer                                     59   0%
 ivy--resize-minibuffer-to-fit                             59   0%
- ivy--filter                                                17   0%
- funcall                                                   17   0%
- #<compiled 0x53aa837>                                    17   0%
 - cl-remove-if-not                                        17   0%
  - apply                                                  17   0%
   - cl-remove                                             17   0%
    - apply                                                17   0%
     - cl-delete                                           13   0%
        #<compiled 0xe42463>                               13   0%
- ivy--format                                                 4   0%
- funcall                                                    4   0%
- #<compiled 0xe549cf>                                      4   0%
 - internal--after-with-selected-window                     4   0%
  - select-window                                           4   0%
   - apply                                                  4   0%
      ad-Advice-select-window                               4   0%
- timer-event-handler                                         15   0%
- byte-code                                                  15   0%
 apply                                                     15   0%
- redisplay_internal (C function)                              8   0%
- eval                                                        8   0%
- sml/generate-minor-modes                                   8   0%
- rm--mode-list-as-string-list                              4   0%
   mapcar                                                   4   0%
  sml/fill-width-available                                  4   0%
- #<compiled 0x4f2e365>                                        4   0%
- ivy--minibuffer-setup                                       4   0%
- ivy--exhibit                                               4   0%
- ivy--format                                               4   0%
 - mapcar                                                   4   0%
    counsel-M-x-transformer                                 4   0%
- ivy-call                                                     96   0%
- #<compiled 0xd6c0df>                                        96   0%
- command-execute                                            96   0%
- call-interactively                                        96   0%
- profiler-report                                          96   0%
 - profiler-report-cpu                                     96   0%
  - profiler-report-profile-other-window                   92   0%
   - profiler-report-setup-buffer                          92   0%
    - profiler-report-setup-buffer-1                       76   0%
     - profiler-report-mode                                76   0%
      - run-mode-hooks                                     76   0%
       - run-hooks                                         76   0%
        - yankpad-local-category-to-major-mode                 76   0%
         - yankpad--categories                             76   0%
          - yankpad--file-elements                         76   0%
           - insert-file-contents                          40   0%
            - org-indent-refresh-maybe                     40   0%
             - org-indent-add-properties                   40   0%
              - org-at-item-p                              32   0%
               - org-list-in-valid-context-p                 32   0%
                - org-in-block-p                           32   0%
                 - funcall                                 32   0%
                  - #<compiled 0x2bb81bf>                  28   0%
                     org-between-regexps-p                 16   0%
                     outline-next-heading                   4   0%
                     outline-previous-heading                  4   0%
                org-indent-set-line-properties                  4   0%
           - org-element-parse-buffer                      36   0%
            - org-element--parse-elements                  36   0%
             - org-element--parse-elements                 36   0%
              - org-element--parse-elements                 28   0%
               - org-element--parse-elements                 28   0%
                - org-element--parse-elements                 20   0%
                 - org-element--current-element                 12   0%
                    org-element-item-parser                  4   0%
                    org-element-table-row-parser                  4   0%
                 - org-element--parse-elements                  8   0%
                  - org-element--current-element                  8   0%
                     org-element-paragraph-parser                  4   0%
                - org-element--current-element                  8   0%
                 - org-element--list-struct                  4   0%
                    funcall                                 4   0%
              - org-element--current-element                  8   0%
               - org-element-headline-parser                  4   0%
                  replace-regexp-in-string                  4   0%
                 org-get-limited-outline-regexp                  4   0%
    - profiler-report-render-calltree                      16   0%
     - profiler-report-rerender-calltree                   16   0%
      - profiler-report-render-calltree-1                  16   0%
       - profiler-calltree-build                           16   0%
        - profiler-calltree-build-unified                  16   0%
         - maphash                                         16   0%
          - #<compiled 0x53da6bd>                           4   0%
             gethash                                        4   0%
    profiler-cpu-profile                                    4   0%
- ivy--reset-state                                             40   0%
- ivy--filter                                                 12   0%
- ivy--re-filter                                              8   0%
- funcall                                                    8   0%
- #<compiled 0x4d5e7e7>                                     8   0%
 - cl-remove-if-not                                         8   0%
  - apply                                                   8   0%
   - cl-remove                                              4   0%
      #<compiled 0xa7facd>                                  4   0%
- ivy--recompute-index                                        4   0%
- ivy--preselect-index                                       4   0%
  cl-position                                               4   0%
- my-org-agenda                                                2768  10%
- if                                                          2768  10%
- org-agenda-list                                            2768  10%
- catch                                                     2768  10%
- org-agenda-prepare                                       1662   6%
- let                                                     1662   6%
- if                                                     1662   6%
 - if                                                    1662   6%
  - org-agenda-prepare-buffers                           1652   6%
   - funcall                                             1652   6%
    - #<compiled 0x50e6899>                              1648   6%
     - org-end-of-subtree                                 480   1%
      - org-back-to-heading                               100   0%
       - funcall                                          100   0%
        - #<compiled 0x50e6a49>                           100   0%
         - outline-back-to-heading                        100   0%
            outline-on-heading-p                           20   0%
        org-outline-level                                  12   0%
     - org-refresh-category-properties                    268   1%
      - funcall                                           100   0%
         #<compiled 0x50e68f1>                            100   0%
      - org-at-property-p                                   8   0%
       - org-get-property-block                             8   0%
        - org-inlinetask-in-task-p                          8   0%
         - save-excursion                                   8   0%
          - let*                                            8   0%
           - or                                             8   0%
            - and                                           8   0%
               progn                                        4   0%
      - org-end-of-subtree                                  8   0%
       - org-back-to-heading                                8   0%
        - funcall                                           8   0%
           #<compiled 0x50e6981>                            8   0%
      - org-back-to-heading                                 4   0%
       - funcall                                            4   0%
        - #<compiled 0x50e6929>                             4   0%
           outline-back-to-heading                          4   0%
     - org-at-heading-p                                   160   0%
        outline-on-heading-p                              128   0%
     - org-set-regexps-and-options                        140   0%
      - org--setup-collect-keywords                       140   0%
       - org-element-at-point                              32   0%
        - save-excursion                                   32   0%
         - save-restriction                                32   0%
          - let                                            32   0%
           - cond                                          32   0%
            - org-element--parse-to                        28   0%
             - catch                                       28   0%
              - save-excursion                             28   0%
               - save-restriction                          28   0%
                - let*                                     28   0%
                 - let                                     28   0%
                  - while                                  28   0%
                   - if                                    24   0%
                    - setq                                 24   0%
                     - org-element--current-element                 24   0%
                      - save-excursion                     24   0%
                       - let                               24   0%
                        - cond                             24   0%
                         - let                             24   0%
                          - cond                           24   0%
                           - cond                          24   0%
                            - org-element-keyword-parser                 16   0%
                             - save-excursion                 12   0%
                              - let                        12   0%
                               - list                       8   0%
                                  nconc                     8   0%
                               - org-trim                   4   0%
                                  replace-regexp-in-string                  4   0%
                            - org-element-comment-parser                  4   0%
                             - save-excursion                  4   0%
                              - let*                        4   0%
                                 prog2                      4   0%
                   - let                                    4   0%
                      cond                                  4   0%
            - progn                                         4   0%
             - let*                                         4   0%
              - org-at-heading-p                            4   0%
                 outline-on-heading-p                       4   0%
       - insert-file-contents                               4   0%
        - set-auto-coding                                   4   0%
           find-auto-coding                                 4   0%
       org-in-commented-heading-p                          16   0%
       delete-dups                                          4   0%
  - org-agenda-mode                                        10   0%
   - easy-menu-change                                      10   0%
    - easy-menu-create-menu                                10   0%
       mapcar                                              10   0%
- let*                                                     1106   4%
- org-agenda-finalize                                     1004   3%
- if                                                     1004   3%
 - save-excursion                                        1004   3%
  - let                                                  1004   3%
   - if                                                   996   3%
    - progn                                               620   2%
     - org-agenda-dim-blocked-tasks                       620   2%
      - save-excursion                                    620   2%
       - let                                              620   2%
        - while                                           620   2%
         - let                                            620   2%
          - if                                            620   2%
           - and                                          620   2%
            - save-current-buffer                         620   2%
             - save-excursion                             616   2%
              - org-entry-blocked-p                       608   2%
               - run-hook-with-args-until-failure                504   1%
                - org-block-todo-from-children-or-siblings-or-parent                372   1%
                 - funcall                                372   1%
                  - #<compiled 0x374abf>                  368   1%
                   - org-entry-get                        120   0%
                    - org--property-local-values                108   0%
                     - org-get-property-block                 68   0%
                      - org-inlinetask-in-task-p                 28   0%
                       - save-excursion                    28   0%
                        - let*                             28   0%
                         - or                              28   0%
                          - and                            28   0%
                             progn                         20   0%
                   - org-up-heading-safe                  116   0%
                      org-outline-level                    16   0%
                     outline-next-heading                  32   0%
                   - org-entry-is-done-p                   20   0%
                      org-get-todo-state                   20   0%
                   - org-entry-is-todo-p                    4   0%
                      org-get-todo-state                    4   0%
                - org-depend-block-todo                   132   0%
                 - let*                                   132   0%
                  - catch                                 132   0%
                   - setq                                  84   0%
                    - org-entry-get                        76   0%
                     - org--property-local-values                 72   0%
                      - org-get-property-block                 32   0%
                       - org-inlinetask-in-task-p                 20   0%
                        - save-excursion                   20   0%
                         - let*                            20   0%
                          - or                             20   0%
                           - and                           20   0%
                              progn                        20   0%
                   - while                                 48   0%
                    - cond                                 48   0%
                     - setq                                44   0%
                      - org-find-entry-with-id                 44   0%
                       - org-find-property                 44   0%
                        - funcall                          44   0%
                         - #<compiled 0x1a2c4ad>                 44   0%
                          - org-at-property-p                 12   0%
                           - org-get-property-block                  4   0%
                            - org-back-to-heading                  4   0%
                             - funcall                      4   0%
                              - #<compiled 0x4e380e7>                  4   0%
                                 outline-back-to-heading                  4   0%
                     - save-excursion                       4   0%
                        if                                  4   0%
               - org-entry-get                             92   0%
                - org--property-local-values                 76   0%
                 - org-get-property-block                  44   0%
                  - org-inlinetask-in-task-p                 16   0%
                   - save-excursion                        16   0%
                    - let*                                 16   0%
                     - or                                  16   0%
                      - and                                16   0%
                         progn                             12   0%
                    org-before-first-heading-p                  8   0%
                  - org-get-limited-outline-regexp                  4   0%
                   - cond                                   4   0%
                      not                                   4   0%
                - org-entry-properties                      8   0%
                 - funcall                                  4   0%
                    #<compiled 0x4f2e4f7>                   4   0%
    - let                                                 364   1%
     - save-excursion                                     364   1%
      - while                                             364   1%
       - if                                               364   1%
        - progn                                           364   1%
         - put-text-property                              364   1%
          - let                                           364   1%
           - save-excursion                               364   1%
            - save-excursion                              364   1%
             - save-restriction                           364   1%
              - delete-dups                               352   1%
               - mapcar                                   352   1%
                - org-get-tags-at                         348   1%
                 - funcall                                348   1%
                  - #<compiled 0x55a0661>                 348   1%
                   - funcall                              348   1%
                    - #<compiled 0x55a06a9>                348   1%
                     - org-up-heading-safe                336   1%
                        org-outline-level                  28   0%
                      - funcall                            12   0%
                       - #<compiled 0xaccfe1>                 12   0%
                        - org-back-to-heading                 12   0%
                         - funcall                         12   0%
                          - #<compiled 0x4f2f733>                 12   0%
                           - outline-back-to-heading                 12   0%
                              outline-on-heading-p                 12   0%
                     - org-back-to-heading                  4   0%
                      - funcall                             4   0%
                       - #<compiled 0x40cb849>                  4   0%
                        - outline-back-to-heading                  4   0%
                           outline-on-heading-p                  4   0%
                       match-string-no-properties                  4   0%
    - org-agenda-align-tags                                12   0%
     - let                                                 12   0%
      - save-excursion                                     12   0%
       - while                                             12   0%
        - add-text-properties                               4   0%
         - flycheck-handle-change                           4   0%
            run-at-time                                     4   0%
        - delete-region                                     4   0%
         - flycheck-handle-change                           4   0%
          - run-at-time                                     4   0%
             timer-relative-time                            4   0%
   - save-excursion                                         4   0%
    - while                                                 4   0%
     - org-activate-links                                   4   0%
      - funcall                                             4   0%
       - #<compiled 0xe55619>                               4   0%
        - org-element-link-parser                           4   0%
         - catch                                            4   0%
          - let                                             4   0%
           - cond                                           4   0%
              cond                                          4   0%
   - run-hooks                                              4   0%
    - #<lambda 0x363f84cb9b50089c>                          4   0%
       remove-text-properties                               4   0%
- while                                                     52   0%
- if                                                       44   0%
 - progn                                                   32   0%
  - if                                                     32   0%
   - insert                                                28   0%
    - org-agenda-finalize-entries                          28   0%
     - let                                                 28   0%
      - setq                                               24   0%
       - mapcar                                            24   0%
        - sort                                             20   0%
         - org-entries-lessp                               20   0%
          - let*                                           20   0%
           - if                                            20   0%
            - setq                                         20   0%
             - funcall                                     20   0%
              - bh/agenda-sort                             20   0%
               - let                                       20   0%
                - cond                                     20   0%
                 - cond                                    16   0%
                  - apply                                  16   0%
                     bh/is-due-deadline                     4   0%
                   - bh/is-not-scheduled-or-deadline                  4   0%
                    - and                                   4   0%
                     - not                                  4   0%
                      - bh/is-deadline                      4   0%
                       - or                                 4   0%
                          bh/is-late-deadline                  4   0%
                     bh/is-scheduled-late                   4   0%
                     bh/is-late-deadline                    4   0%
        - org-agenda-highlight-todo                         4   0%
         - let                                              4   0%
          - if                                              4   0%
           - let                                            4   0%
            - if                                            4   0%
             - and                                          4   0%
                equal                                       4   0%
 - let                                                     12   0%
  - setq                                                   12   0%
   - org-get-entries-from-diary                            12   0%
    - let*                                                 12   0%
     - save-excursion                                      12   0%
      - let                                                12   0%
       - unwind-protect                                    12   0%
        - progn                                            12   0%
         - funcall                                         12   0%
          - diary-list-entries                             12   0%
           - diary-fancy-display                            8   0%
            - special-mode                                  4   0%
             - run-mode-hooks                               4   0%
              - run-hooks                                   4   0%
               - mode-icons-reset                           4   0%
                - mode-icons-set-current-mode-icon                  4   0%
                 - mode-icons-set-mode-icon                  4   0%
                  - mode-icons-get-mode-icon                  4   0%
                   - mode-icons-get-icon-spec                  4   0%
                    - funcall                               4   0%
                       #<compiled 0x533ab05>                  4   0%
            - diary-fancy-display-mode                      4   0%
             - run-mode-hooks                               4   0%
              - run-hooks                                   4   0%
               - yankpad-local-category-to-major-mode                  4   0%
                - yankpad--categories                       4   0%
                 - yankpad--file-elements                   4   0%
                  - org-mode                                4   0%
                   - org-install-agenda-files-menu                  4   0%
                    - org-agenda-files                      4   0%
                     - mapcar                               4   0%
                        #<compiled 0xac09f3>                  4   0%
- while                                                     8   0%
 - catch                                                    8   0%
  - let                                                     8   0%
   - cond                                                   8   0%
    - setq                                                  8   0%
     - apply                                                8   0%
      - org-agenda-get-day-entries                          8   0%
       - let*                                               8   0%
        - if                                                8   0%
         - org-get-agenda-file-buffer                       4   0%
            org-find-base-buffer-visiting                   4   0%
- if                                                        50   0%
- and                                                      34   0%
 - pos-visible-in-window-p                                  4   0%
  - eval                                                    4   0%
   - sml/generate-minor-modes                               4   0%
    - rm--mode-list-as-string-list                          4   0%
       mapcar                                               4   0%
- byte-code                                                     659   2%
- read-file-name                                               659   2%
- read-file-name-default                                      659   2%
- completing-read                                            659   2%
- completing-read-default                                   659   2%
- read-from-minibuffer                                     595   2%
- minibuffer-inactive-mode                                375   1%
 - run-mode-hooks                                         375   1%
  - run-hooks                                             375   1%
   - yankpad-local-category-to-major-mode                 375   1%
    - yankpad--categories                                 375   1%
     - yankpad--file-elements                             375   1%
      - insert-file-contents                              316   1%
       - org-indent-refresh-maybe                         316   1%
        - org-indent-add-properties                       316   1%
         - org-at-item-p                                  280   1%
          - org-list-in-valid-context-p                   280   1%
           - org-in-block-p                               280   1%
            - funcall                                     276   1%
             - #<compiled 0x4dbba7b>                      268   1%
              - org-between-regexps-p                     188   0%
               - org-in-regexp                             32   0%
                - funcall                                  20   0%
                   #<compiled 0x533db2d>                    8   0%
                outline-next-heading                       44   0%
                outline-previous-heading                   28   0%
           org-indent-set-line-properties                  16   0%
      - org-element-parse-buffer                           52   0%
       - org-element--parse-elements                       52   0%
        - org-element--parse-elements                      52   0%
         - org-element--parse-elements                     36   0%
          - org-element--parse-elements                    36   0%
           - org-element--current-element                  28   0%
              org-element-paragraph-parser                  4   0%
              org-element--collect-affiliated-keywords                  4   0%
              org-element--list-struct                      4   0%
           - org-element--parse-objects                     4   0%
              org-element--object-lex                       4   0%
           - org-element--parse-elements                    4   0%
              org-element--current-element                  4   0%
         - org-element--current-element                    16   0%
          - org-element-headline-parser                    12   0%
             org-end-of-subtree                             4   0%
            org-get-limited-outline-regexp                  4   0%
      - org-mode                                            7   0%
       - org-install-agenda-files-menu                      7   0%
        - org-agenda-files                                  7   0%
         - mapcar                                           7   0%
            #<compiled 0xac09f3>                            7   0%
- redisplay_internal (C function)                          27   0%
 - #<compiled 0x408127>                                    23   0%
  - apply                                                  23   0%
   - redisplay--update-region-highlights                   23   0%
    - funcall                                              17   0%
     - #<compiled 0x24f542f>                               17   0%
      - redisplay--update-region-highlight                 17   0%
       - #<compiled 0x1826f19>                             17   0%
          apply                                            17   0%
 - eval                                                     4   0%
  - list                                                    4   0%
   - nyan-create                                            4   0%
      nyan-add-scroll-handler                               4   0%
  sml/generate-position-help                               18   0%
- command-execute                                           2   0%
 - call-interactively                                       2   0%
    delete-backward-char                                    2   0%
- next-line                                                     347   1%
- funcall                                                      347   1%
- #<compiled 0x470bbab>                                       347   1%
- line-move                                                  347   1%
- line-move-visual                                          347   1%
- posn-at-point                                            160   0%
- eval                                                    160   0%
 - sml/generate-minor-modes                               140   0%
  - sml/fill-width-available                              122   0%
   - format-mode-line                                     104   0%
    - eval                                                104   0%
     - list                                               104   0%
      - nyan-create                                        50   0%
         nyan-add-scroll-handler                           11   0%
         create-image                                       9   0%
         nyan-catface-index                                 6   0%
  - rm--mode-list-as-string-list                           18   0%
     mapcar                                                13   0%
 - list                                                    15   0%
  - nyan-create                                            10   0%
     create-image                                           6   0%
   mode-icons--generate-narrow                              5   0%
- completing-read-default                                       248   0%
- read-from-minibuffer                                         244   0%
- minibuffer-inactive-mode                                    220   0%
- run-mode-hooks                                             220   0%
- run-hooks                                                 220   0%
- yankpad-local-category-to-major-mode                     220   0%
- yankpad--categories                                     220   0%
 - yankpad--file-elements                                 220   0%
  - org-element-parse-buffer                              160   0%
   - org-element--parse-elements                          160   0%
    - org-element--parse-elements                         156   0%
     - org-element--parse-elements                        144   0%
      - org-element--parse-elements                       132   0%
       - org-element--parse-elements                       76   0%
        - org-element--current-element                     36   0%
           org-element-item-parser                         12   0%
           org-get-limited-outline-regexp                   8   0%
           org-at-heading-p                                 4   0%
        - org-element--parse-elements                      20   0%
           org-element--parse-elements                     12   0%
           org-element--current-element                     8   0%
        - org-element--parse-objects                       20   0%
           org-element--object-lex                         16   0%
       - org-element--current-element                      36   0%
        - org-element--list-struct                         24   0%
           funcall                                         24   0%
          org-get-limited-outline-regexp                    8   0%
          org-element-paragraph-parser                      4   0%
       - org-element--parse-objects                        16   0%
          org-element--object-lex                          16   0%
      - org-element--current-element                        4   0%
         org-element-section-parser                         4   0%
     - org-element--current-element                        12   0%
      - org-element-headline-parser                         8   0%
         org-element--parse-objects                         4   0%
         org-element--get-node-properties                   4   0%
    - org-element--current-element                          4   0%
     - org-element-headline-parser                          4   0%
        org-end-of-subtree                                  4   0%
  - insert-file-contents                                   40   0%
   - org-indent-refresh-maybe                              40   0%
    - org-indent-add-properties                            40   0%
       org-indent-set-line-properties                      24   0%
     - org-at-item-p                                        8   0%
      - org-list-in-valid-context-p                         4   0%
         org-in-block-p                                     4   0%
  - org-mode                                               16   0%
   - org-set-regexps-and-options                            8   0%
    - org-make-options-regexp                               8   0%
     - regexp-opt                                           8   0%
      - regexp-opt-group                                    8   0%
       - regexp-opt-group                                   8   0%
        - mapcar                                            4   0%
           #<compiled 0x276407>                             4   0%
        - regexp-opt-group                                  4   0%
         - regexp-opt-group                                 4   0%
          - regexp-opt-group                                4   0%
           - regexp-opt-group                               4   0%
            - regexp-opt-group                              4   0%
             - regexp-opt-group                             4   0%
              - regexp-opt-group                            4   0%
                 regexp-opt-group                           4   0%
   - org-install-agenda-files-menu                          8   0%
    - org-agenda-files                                      8   0%
     - mapcar                                               8   0%
        #<compiled 0xac09f3>                                8   0%
- redisplay_internal (C function)                               4   0%
- eval                                                         4   0%
- sml/generate-minor-modes                                    4   0%
 sml/fill-width-available                                   4   0%
- scroll-up-command                                             116   0%
- scroll-up                                                     39   0%
- eval                                                         39   0%
- sml/generate-minor-modes                                    31   0%
- sml/fill-width-available                                   24   0%
- format-mode-line                                          18   0%
- eval                                                     18   0%
   list                                                    18   0%
- rm--mode-list-as-string-list                                7   0%
- mapcar                                                     7   0%
- rm--propertize                                            2   0%
   eval                                                     2   0%
list                                                         8   0%
- kill-buffer                                                    90   0%
- server-kill-buffer-query-function                             46   0%
- yes-or-no-p                                                  46   0%
- read-key                                                    46   0%
- funcall                                                    46   0%
- #<compiled 0x4d6559d>                                     46   0%
- read-key-sequence-vector                                 46   0%
 - timer-event-handler                                      3   0%
  - byte-code                                               3   0%
     apply                                                  3   0%
- yes-or-no-p                                                   25   0%
- read-key                                                     25   0%
- funcall                                                     25   0%
- #<compiled 0x54a2c61>                                      25   0%
- read-key-sequence-vector                                  25   0%
- timer-event-handler                                       4   0%
 - byte-code                                                4   0%
    apply                                                   4   0%
- server-kill-buffer                                            19   0%
- server-buffer-done                                           19   0%
- server-delete-client                                        19   0%
- delete-process                                             19   0%
- redisplay_internal (C function)                            4   0%
- eval                                                      4   0%
 - sml/generate-minor-modes                                 4   0%
    sml/fill-width-available                                4   0%
- previous-line                                                  50   0%
- funcall                                                       50   0%
- #<compiled 0x5325b03>                                        50   0%
- line-move                                                   50   0%
- line-move-visual                                           34   0%
- posn-at-point                                              2   0%
- eval                                                      2   0%
 - sml/generate-minor-modes                                 2   0%
    rm--mode-list-as-string-list                            2   0%
- default-line-height                                        13   0%
 default-font-height                                        4   0%
- line-move-partial                                           3   0%
- default-line-height                                        2   0%
  default-font-height                                       2   0%
- profiler-report-write-profile                                  18   0%
- profiler-write-profile                                        18   0%
- write-file                                                   14   0%
- save-buffer                                                  9   0%
- basic-save-buffer                                           9   0%
- funcall                                                    4   0%
- #<compiled 0x22e131>                                      4   0%
 - run-hooks                                                4   0%
    delete-trailing-whitespace                              4   0%
- basic-save-buffer-1                                        3   0%
  basic-save-buffer-2                                       3   0%
- vc-before-save                                             2   0%
- byte-code                                                 2   0%
 - vc-backend                                               2   0%
  - vc-registered                                           2   0%
   - byte-code                                              2   0%
    - mapc                                                  2   0%
     - #<compiled 0x27e217>                                 2   0%
      - vc-call-backend                                     2   0%
       - apply                                              2   0%
        - vc-sccs-registered                                2   0%
         - vc-default-registered                            2   0%
          - vc-check-master-templates                       2   0%
           - mapcar                                         2   0%
              #<compiled 0x27e61d>                          2   0%
- set-visited-file-name                                        5   0%
- apply                                                       5   0%
- ad-Advice-set-visited-file-name                            5   0%
- #<compiled 0x22d685>                                      5   0%
 - funcall                                                  5   0%
  - #<compiled 0x54d8005>                                   5   0%
   - set-auto-mode                                          5   0%
      assoc-default                                         5   0%
+ timer-event-handler                                            1137   4%
+ ...                                                            1063   4%
+ mouse-fixup-help-message                                        622   2%
+ redisplay_internal (C function)                                 560   2%
undefined                                                        18   0%
tooltip-hide                                                      1   0%
+ yas--post-command-handler                                         1   0%


[0] https://github.com/novoid/dot-emacs
[1] https://github.com/novoid/Memacs

-- 
get mail|git|SVN|photos|postings|SMS|phonecalls|RSS|CSV|XML into Org-mode:
       > get Memacs from https://github.com/novoid/Memacs <
Personal Information Management > http://Karl-Voit.at/tags/pim/
Emacs-related > http://Karl-Voit.at/tags/emacs/

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

* Re: Slow speed of week and month views
  2017-08-06  9:01           ` Karl Voit
@ 2017-08-06  9:13             ` Adam Porter
  2017-08-06 10:03               ` Karl Voit
  2017-08-06  9:26             ` Nicolas Goaziou
  1 sibling, 1 reply; 14+ messages in thread
From: Adam Porter @ 2017-08-06  9:13 UTC (permalink / raw)
  To: emacs-orgmode

Karl Voit <devnull@Karl-Voit.at> writes:

> With a fairly modified configuration (like mine on [0]) and a large
> set of long Org-mode files I can't publish, it is hard to do
> analysis here. So I can offer to report any performance annoyances
> and anything you need to execute (report) on my side.

It might be helpful if you posted a censored version of your large Org
files somewhere.  There's a function by Nicolas that replaces all the
characters with "x", and there's also a function that replaces words
with random words of the same length (that one takes a while to run).

> I just learned about elp-instrument-package. What prefixes are of interest to
> you?

FYI, here's a handy "elp-profile" macro that automatically
de-instruments after running.  It shows the top 20 functions by default,
but you can adjust that easily.

https://alphapapa.github.io/emacs-package-dev-handbook/#orgc830139

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

* Re: Slow speed of week and month views
  2017-08-06  9:01           ` Karl Voit
  2017-08-06  9:13             ` Adam Porter
@ 2017-08-06  9:26             ` Nicolas Goaziou
  2017-08-06 10:18               ` Karl Voit
  1 sibling, 1 reply; 14+ messages in thread
From: Nicolas Goaziou @ 2017-08-06  9:26 UTC (permalink / raw)
  To: Karl Voit; +Cc: Karl Voit, emacs-orgmode

Karl Voit <devnull@Karl-Voit.at> writes:

> I just learned about elp-instrument-package. What prefixes are of interest to
> you?

"org-" prefix. The nice thing about `elp-instrument-package' is that is
reports the number of times a function is called.

> un-compiled agenda profiler-report:

Thank you. However, there is much cruft going on there. "yankpad-",
"ivy-", "yas-"... Even `profiler-report-write-profile' is registered in
there.

Could you try to minimize as much as possible the non-Org interaction?
You may need to load a minimal config to do so. You could also try to
evaluate the command you want to time with M-: instead of M-x, e.g.

  M-: (org-agenda nil "a")

Thanks.


Regards,

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

* Re: Slow speed of week and month views
  2017-08-06  9:13             ` Adam Porter
@ 2017-08-06 10:03               ` Karl Voit
  2017-08-06 10:28                 ` Adam Porter
  0 siblings, 1 reply; 14+ messages in thread
From: Karl Voit @ 2017-08-06 10:03 UTC (permalink / raw)
  To: emacs-orgmode

Hi Adam,

* Adam Porter <adam@alphapapa.net> wrote:
> Karl Voit <devnull@Karl-Voit.at> writes:
>
>> With a fairly modified configuration (like mine on [0]) and a large
>> set of long Org-mode files I can't publish, it is hard to do
>> analysis here. So I can offer to report any performance annoyances
>> and anything you need to execute (report) on my side.
>
> It might be helpful if you posted a censored version of your large Org
> files somewhere.  There's a function by Nicolas that replaces all the
> characters with "x", and there's also a function that replaces words
> with random words of the same length (that one takes a while to run).

Nicolas, can you provide an URL for this? Sounds interesting.

>> I just learned about elp-instrument-package. What prefixes are of interest to
>> you?
>
> FYI, here's a handy "elp-profile" macro that automatically
> de-instruments after running.  It shows the top 20 functions by default,
> but you can adjust that easily.
>
> https://alphapapa.github.io/emacs-package-dev-handbook/#orgc830139

I executed following code below (without changing the prefixes yet
for testing purposes) which resulted in my usual Agenda but no
additional buffer showing any results. M-x elp-results is also
empty.

What did I do the wrong way?

(defmacro elp-profile (times &rest body)
  "Call this macro from an Org source block and you'll get a results block 
   showing which 20 functions were called the most times, how long they 
   took to run, etc. Set prefixes to a list of strings matching the prefixes 
   of the functions you want to instrument.

   Use it like this:
   (elp-profile 10
     (goto-char (point-min))
     (search-forward \"something\"))
  "
  (declare (indent defun))
  `(let ((prefixes '("string-" "s-" "buffer-" "append" "delq" "map"
                     "list" "car" "save-" "outline-" "delete-dups"
                     "sort" "line-" "nth" "concat" "char-to-string"
                     "rx-" "goto-" "when" "search-" "re-"))
         output)
     (dolist (prefix prefixes)
       (elp-instrument-package prefix))
     (dotimes (x ,times)
       ,@body)
     (elp-results)
     (elp-restore-all)
     (point-min)
     (forward-line 20)
     (delete-region (point) (point-max))
     (setq output (buffer-substring-no-properties (point-min) (point-max)))
     (kill-buffer)
     (delete-window)
     output))

(elp-profile 1
     (goto-char (point-min))
     (org-agenda-list))


-- 
get mail|git|SVN|photos|postings|SMS|phonecalls|RSS|CSV|XML into Org-mode:
       > get Memacs from https://github.com/novoid/Memacs <
Personal Information Management > http://Karl-Voit.at/tags/pim/
Emacs-related > http://Karl-Voit.at/tags/emacs/

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

* Re: Slow speed of week and month views
  2017-08-06  9:26             ` Nicolas Goaziou
@ 2017-08-06 10:18               ` Karl Voit
  2017-08-07 11:41                 ` Nicolas Goaziou
  0 siblings, 1 reply; 14+ messages in thread
From: Karl Voit @ 2017-08-06 10:18 UTC (permalink / raw)
  To: emacs-orgmode

* Nicolas Goaziou <mail@nicolasgoaziou.fr> wrote:
> Karl Voit <devnull@Karl-Voit.at> writes:
>
>> I just learned about elp-instrument-package. What prefixes are of interest to
>> you?
>
> "org-" prefix. The nice thing about `elp-instrument-package' is that is
> reports the number of times a function is called.

Results at the end of this posting.

>> un-compiled agenda profiler-report:
>
> Thank you. However, there is much cruft going on there. "yankpad-",
> "ivy-", "yas-"... Even `profiler-report-write-profile' is registered in
> there.

Yes, this is my configuration ;-)

I'm no expert in interpreting the results but as far as I understood
it, the cruft you mentioned takes only a fraction of CPU time for
the task.

> Could you try to minimize as much as possible the non-Org interaction?
> You may need to load a minimal config to do so. You could also try to
> evaluate the command you want to time with M-: instead of M-x, e.g.
>
>   M-: (org-agenda nil "a")

I may take some time to come up with a minimum config and my agenda
files.

However, in case this is much faster compared to my current
situation, this does not help me with my issues and just shows that
Org itself does not have urgent performance issues, right?




org-agenda-list                                               1           22.456601085  22.456601085
org-agenda-get-day-entries                                    17          18.255724348  1.0738661381
org-agenda-get-scheduled                                      17          14.40543005   0.8473782382
org-element--parse-elements                                   2712        8.0038418899  0.0029512691
org-entry-get                                                 2002        6.3268592120  0.0031602693
org--property-local-values                                    1937        6.1333810950  0.0031664331
org-is-habit-p                                                1779        5.9716177949  0.0033567272
org-get-property-block                                        1943        5.5327713039  0.0028475405
org-back-to-heading                                           7664        5.1811751059  0.0006760405
org-at-planning-p                                             2338        4.4562334949  0.0019060023
org-inlinetask-in-task-p                                      4191        3.4042555110  0.0008122776
org-get-todo-state                                            2284        3.3749943680  0.0014776682
org-agenda-get-deadlines                                      17          2.7361401300  0.1609494194
org-agenda-prepare                                            1           2.200086025   2.200086025
org-agenda-prepare-buffers                                    1           1.980565276   1.980565276
org-element-parse-buffer                                      6           1.4980202550  0.2496700425
org-agenda-finalize                                           1           1.094985093   1.094985093
org-agenda-skip                                               2545        1.0722660840  0.0004213226
org-end-of-subtree                                            449         1.0195991870  0.0022708222
org-element--current-element                                  6040        0.8202829350  0.0001358084
org-get-entries-from-diary                                    1           0.806067286   0.806067286
org-up-heading-safe                                           398         0.7662179339  0.0019251706
org-get-tags-at                                               126         0.7296816199  0.0057911239
org-before-first-heading-p                                    2036        0.7035860589  0.0003455727
org-agenda-dim-blocked-tasks                                  1           0.689500952   0.689500952
org-element--parse-objects                                    4566        0.6892202150  0.0001509461
org-entry-blocked-p                                           61          0.678698494   0.0111262048
org-agenda-get-blocks                                         17          0.628517483   0.0369716166
org-outline-level                                             1353        0.5567370970  0.0004114834
org-add-props                                                 15547       0.5454277439  3.508...e-05
org-element-item-parser                                       1698        0.5263746370  0.0003099968
org-indent-refresh-maybe                                      6           0.495835792   0.0826392986
org-indent-add-properties                                     6           0.4955369260  0.0825894876
org-agenda-get-timestamps                                     17          0.4623098930  0.0271946995
org-block-todo-from-children-or-siblings-or-parent            61          0.3965410289  0.0065006726
org-refresh-category-properties                               17          0.363467201   0.0213804235
org-at-item-p                                                 5646        0.3450254890  6.110...e-05
org-list-in-valid-context-p                                   1698        0.3091587659  0.0001820723
org-in-block-p                                                1698        0.3039967379  0.0001790322
org-agenda-mode                                               1           0.219065373   0.219065373
org-between-regexps-p                                         6792        0.1952452710  2.874...e-05
org-set-regexps-and-options                                   23          0.1858347920  0.0080797735
org--setup-collect-keywords                                   25          0.1807199010  0.0072287960
org-at-heading-p                                              6015        0.1549813460  2.576...e-05
org-depend-block-todo                                         45          0.147637119   0.0032808248
org-agenda--timestamp-to-absolute                             4282        0.1214312879  2.835...e-05
org-time-string-to-absolute                                   4282        0.1054320980  2.462...e-05
org-get-limited-outline-regexp                                8392        0.0991706369  1.181...e-05
org-in-src-block-p                                            2481        0.0879872789  3.546...e-05
org-element--object-lex                                       5148        0.0862918539  1.676...e-05
org-indent-set-line-properties                                5832        0.0773937020  1.327...e-05
org-element-at-point                                          43          0.0534147080  0.0012422025
org-at-date-range-p                                           167         0.0512554689  0.0003069189
org-element--parse-to                                         43          0.050396487   0.0011720113
org-find-entry-with-id                                        4           0.049598946   0.0123997365
org-find-property                                             4           0.049565889   0.0123914722
org-element-paragraph-parser                                  2499        0.0472630119  1.891...e-05
org-closest-date                                              2179        0.0333128859  1.528...e-05
org-in-regexp                                                 6792        0.0328371180  4.834...e-06
org-parse-time-string                                         4980        0.0325066720  6.527...e-06
org-element--list-struct                                      204         0.0299346770  0.0001467386
org-agenda-finalize-entries                                   1           0.028590852   0.028590852
org-element-headline-parser                                   186         0.0279479120  0.0001502575
org-agenda-format-item                                        63          0.0225724880  0.0003582934
org-at-property-p                                             6           0.021528419   0.0035880698
org-agenda-get-sexps                                          17          0.0213119410  0.0012536435
org-tag-string-to-alist                                       7           0.019620708   0.0028029582
org-entry-is-done-p                                           62          0.019182333   0.0003093924
org-list-item-body-column                                     1698        0.0190441769  1.121...e-05
org-entries-lessp                                             289         0.0187772820  6.497...e-05
org-entry-properties                                          65          0.0166800490  0.0002566161
org-in-commented-heading-p                                    11          0.016132671   0.0014666064
org-element-comment-parser                                    38          0.0139885649  0.0003681201
org-habit-parse-todo                                          4           0.013850074   0.0034625185
org-inlinetask-outline-regexp                                 4191        0.0137324080  3.276...e-06
org-agenda-get-category-icon                                  63          0.0134784819  0.0002139441
org-element--collect-affiliated-keywords                      1858        0.0126514760  6.809...e-06
org-mode                                                      6           0.0117698550  0.0019616425
org-get-priority                                              59          0.0115445370  0.0001956701
org-agenda-align-tags                                         1           0.011071635   0.011071635
org-element-link-parser                                       340         0.0101422319  2.983...e-05
org-entry-is-todo-p                                           41          0.010028271   0.0002445919
org-element-keyword-parser                                    275         0.0092091630  3.348...e-05
org-time-string-to-time                                       694         0.0087923020  1.266...e-05
org-heading-components                                        15          0.0070980520  0.0004732034
org-get-heading                                               14          0.006817632   0.0004869737
org-get-indentation                                           3948        0.0068139819  1.725...e-06
org-item-re                                                   7010        0.0066241309  9.449...e-07
org-agenda-highlight-todo                                     63          0.0064883529  0.0001029897
org-install-agenda-files-menu                                 6           0.0058662939  0.0009777156
org-element-section-parser                                    156         0.0054134160  3.470...e-05
org-agenda-files                                              9           0.0050733739  0.0005637082
org-get-wdays                                                 2101        0.0049502890  2.356...e-06
org-agenda-new-marker                                         127         0.0047657869  3.752...e-05
org-activate-links                                            17          0.004302121   0.0002530659
org-element-drawer-parser                                     216         0.0039796950  1.842...e-05
org-element-bold-parser                                       1254        0.0037389459  2.981...e-06
org-element-plain-list-parser                                 354         0.0034136569  9.643...e-06
org-element-set-contents                                      7092        0.0033066540  4.662...e-07
org-element-table-cell-parser                                 1224        0.0031456279  2.569...e-06
org-agenda-skip-eval                                          4962        0.0031400739  6.328...e-07
org-element-map                                               6           0.00309839    0.0005163983
org-element-table-row-parser                                  456         0.0029639309  6.499...e-06
org-element-src-block-parser                                  42          0.0024836220  5.913...e-05
org-element-table-parser                                      84          0.0023370089  2.782...e-05
org-check-agenda-file                                         34          0.0022809730  6.708...e-05
org-habit-insert-consistency-graphs                           1           0.002140971   0.002140971
org-make-options-regexp                                       23          0.0020471070  8.900...e-05
org-date-to-gregorian                                         306         0.0020049500  6.552...e-06
org-not-nil                                                   3902        0.0019919079  5.104...e-07
org-mark-ring-push                                            2           0.001923639   0.0009618195
org-element--get-node-properties                              186         0.0016896940  9.084...e-06
org-get-category                                              63          0.0016745019  2.657...e-05
org-remove-uninherited-tags                                   250         0.0010946129  4.378...e-06
org-agenda-fix-displayed-tags                                 63          0.0010371940  1.646...e-05
org-get-agenda-file-buffer                                    34          0.00101761    2.992...e-05
org-today                                                     91          0.000911803   1.001...e-05
org-find-base-buffer-visiting                                 34          0.0008710779  2.561...e-05
org-get-repeat                                                4           0.0008627859  0.0002156964
org-split-string                                              216         0.0008330470  3.856...e-06
org-element-quote-block-parser                                30          0.000754545   2.51515e-05
org-habit-build-graph                                         4           0.000723021   0.0001807552
org-link-expand-abbrev                                        84          0.0006686299  7.959...e-06
org-get-scheduled-time                                        4           0.000649615   0.0001624037
org-element-italic-parser                                     156         0.000549965   3.525...e-06
org-element-subscript-parser                                  90          0.000514684   5.718...e-06
org-element--get-time-properties                              186         0.0004972190  2.673...e-06
org-find-invisible-foreground                                 6           0.0004684680  7.807...e-05
org-agenda-today-p                                            35          0.0004448479  1.270...e-05
org-agenda-quit                                               1           0.000391807   0.000391807
org-agenda--quit                                              1           0.000379794   0.000379794
org-set-startup-visibility                                    6           0.0003552530  5.920...e-05
org-unescape-code-in-string                                   42          0.0003384670  8.058...e-06
org-indent-mode                                               6           0.000272112   4.5352e-05
org-indent-notify-modified-headline                           6           0.00027114    4.519e-05
org-delete-all                                                256         0.0002682720  1.047...e-06
org-setup-filling                                             6           0.000266367   4.439...e-05
org-get-time-of-day                                           24          0.0002553330  1.063...e-05
org-add-prop-inherited                                        150         0.0002186310  1.457...e-06
org-reduced-level                                             264         0.0002176899  8.245...e-07
org-agenda-fontify-priorities                                 1           0.00018978    0.00018978
org-tag-alist-to-groups                                       23          0.00018918    8.225...e-06
org-downcase-keep-props                                       119         0.00018673    1.569...e-06
org-element-latex-fragment-parser                             48          0.0001767690  3.682...e-06
org-refresh-effort-properties                                 6           0.0001657769  2.762...e-05
org-get-todo-face                                             61          0.000163882   2.686...e-06
org-string-nw-p                                               94          0.0001472979  1.566...e-06
org-refresh-properties                                        6           0.0001372320  2.287...e-05
org-macro-initialize-templates                                6           0.0001306730  2.177...e-05
org-extract-log-state-settings                                42          0.0001298379  3.091...e-06
org-element--cache-put                                        310         0.0001260349  4.065...e-07
org-file-menu-entry                                           119         0.0001125649  9.459...e-07
org-agenda-add-time-grid-maybe                                1           0.000109388   0.000109388
org-replace-escapes                                           4           0.000105688   2.6422e-05
org-element-timestamp-parser                                  12          0.0001047390  8.72825e-06
org-agenda-prepare-window                                     1           9.9871e-05    9.9871e-05
org-current-level                                             6           9.577...e-05  1.596...e-05
org-cycle-hide-archived-subtrees                              6           9.5675e-05    1.594...e-05
org-set-font-lock-defaults                                    6           9.310...e-05  1.551...e-05
org-indent-initialize-agent                                   9           8.4457e-05    9.384...e-06
org-link-get-parameter                                        108         7.829...e-05  7.249...e-07
org-macro--collect-macros                                     6           7.703...e-05  1.283...e-05
org-element-underline-parser                                  12          7.525e-05     6.270...e-06
org-element-fixed-width-parser                                6           7.4863e-05    1.247...e-05
org-cycle-show-empty-lines                                    6           7.3664e-05    1.227...e-05
org-diary-default-entry                                       1           7.0578e-05    7.0578e-05
org-habit-get-faces                                           112         6.4307e-05    5.741...e-07
org-agenda-cleanup-fancy-diary                                1           6.356e-05     6.356e-05
org-element-strike-through-parser                             6           6.255...e-05  1.042...e-05
org-agenda-reset-markers                                      2           6.045e-05     3.0225e-05
org-add-to-diary-list                                         1           6.0132e-05    6.0132e-05
org-element-property                                          116         5.776...e-05  4.979...e-07
org-element-footnote-reference-parser                         6           5.7708e-05    9.618e-06
org-modify-diary-entry-string                                 1           5.1566e-05    5.1566e-05
org-habit-get-priority                                        4           4.9648e-05    1.2412e-05
org-hide-archived-subtrees                                    6           4.606...e-05  7.678...e-06
org-agenda-format-date-aligned                                1           4.2942e-05    4.2942e-05
org-update-radio-target-regexp                                6           3.823...e-05  6.372...e-06
org-compile-prefix-format                                     1           3.7413e-05    3.7413e-05
org-remove-keyword-keys                                       6           3.4821e-05    5.8035e-06
org-setup-comments-handling                                   6           2.999...e-05  4.999...e-06
org-cycle-hide-drawers                                        6           2.991...e-05  4.985...e-06
org-element-statistics-cookie-parser                          6           2.7851e-05    4.641...e-06
org-agenda-get-day-face                                       1           2.6736e-05    2.6736e-05
org-element-type                                              43          2.670...e-05  6.210...e-07
org-habit-duration-to-days                                    5           2.6443e-05    5.288...e-06
org-overview                                                  6           2.4111e-05    4.0185e-06
org-set-visibility-according-to-property                      6           2.3298e-05    3.883e-06
org-skip-whitespace                                           6           2.1282e-05    3.547e-06
org-compute-latex-and-related-regexp                          6           1.661...e-05  2.768...e-06
org-face-from-face-or-color                                   63          1.6135e-05    2.561...e-07
org-assign-fast-keys                                          6           1.3769e-05    2.294...e-06
org-days-to-iso-week                                          1           1.3219e-05    1.3219e-05
org-element-cache-reset                                       6           9.770...e-06  1.628...e-06
org-remove-flyspell-overlays-in                               16          8.941e-06     5.588125e-07
org-check-running-clock                                       6           6.843e-06     1.140...e-06
org-load-modules-maybe                                        6           5.871e-06     9.785e-07
org-agenda-set-mode-name                                      1           5.861e-06     5.861e-06
org-unhighlight                                               2           5.846e-06     2.923e-06
org-before-change-function                                    6           4.290...e-06  7.15e-07
org-property-inherit-p                                        6           4.238...e-06  7.064...e-07
org-unbracket-string                                          2           4.196e-06     2.098e-06
org-agenda-update-agenda-type                                 2           3.555e-06     1.7775e-06
org-time-stamp-format                                         8           3.013e-06     3.76625e-07
org-table-sticky-header--scroll-function                      1           2.138e-06     2.138e-06
org-agenda-ndays-to-span                                      2           1.525e-06     7.625e-07
org-agenda-fit-window-to-buffer                               1           1.452e-06     1.452e-06
org-agenda-mark-clocking-task                                 1           1.257e-06     1.257e-06
org-set-sorting-strategy                                      1           1.201e-06     1.201e-06
org-agenda-span-name                                          1           1.092e-06     1.092e-06
org-font-lock-add-tag-faces                                   1           1.031e-06     1.031e-06
org-agenda-span-to-ndays                                      1           1.02e-06      1.02e-06
org-agenda-use-sticky-p                                       1           1.018e-06     1.018e-06


-- 
get mail|git|SVN|photos|postings|SMS|phonecalls|RSS|CSV|XML into Org-mode:
       > get Memacs from https://github.com/novoid/Memacs <
Personal Information Management > http://Karl-Voit.at/tags/pim/
Emacs-related > http://Karl-Voit.at/tags/emacs/

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

* Re: Slow speed of week and month views
  2017-08-06 10:03               ` Karl Voit
@ 2017-08-06 10:28                 ` Adam Porter
  0 siblings, 0 replies; 14+ messages in thread
From: Adam Porter @ 2017-08-06 10:28 UTC (permalink / raw)
  To: emacs-orgmode

Karl Voit <devnull@Karl-Voit.at> writes:

>> It might be helpful if you posted a censored version of your large Org
>> files somewhere.  There's a function by Nicolas that replaces all the
>> characters with "x", and there's also a function that replaces words
>> with random words of the same length (that one takes a while to run).
>
> Nicolas, can you provide an URL for this? Sounds interesting.

I have it saved, here you go:

#+BEGIN_SRC elisp
  (defun scramble-contents ()
    (interactive)
    (let ((tree (org-element-parse-buffer)))
      (org-element-map tree '(code comment comment-block example-block fixed-width
                                   keyword link node-property plain-text verbatim)
        (lambda (obj)
          (cl-case (org-element-type obj)
            ((code comment comment-block example-block fixed-width keyword
                   node-property verbatim)
             (let ((value (org-element-property :value obj)))
               (org-element-put-property
                obj :value (replace-regexp-in-string "[[:alnum:]]" "x" value))))
            (link
             (unless (string= (org-element-property :type obj) "radio")
               (org-element-put-property obj :raw-link "http://orgmode.org")))
            (plain-text
             (org-element-set-element
              obj (replace-regexp-in-string "[[:alnum:]]" "x" obj)))))
        nil nil nil t)
      (let ((buffer (get-buffer-create "*Scrambled text*")))
        (with-current-buffer buffer
          (insert (org-element-interpret-data tree))
          (goto-char (point-min)))
        (switch-to-buffer buffer))))
#+END_SRC

The other one can be found here:

https://gist.github.com/alphapapa/2d141b60ccbe92f1b90000debde2ddd2

> I executed following code below (without changing the prefixes yet
> for testing purposes) which resulted in my usual Agenda but no
> additional buffer showing any results. M-x elp-results is also
> empty.
>
> What did I do the wrong way?
>
> (defmacro elp-profile (times &rest body)
>   "Call this macro from an Org source block and you'll get a results block 
>    showing which 20 functions were called the most times, how long they 
>    took to run, etc. Set prefixes to a list of strings matching the prefixes 
>    of the functions you want to instrument.

Did you read the docstring?  ;)  It's intended to be run from an Org
source block with Babel.  Sorry, I should have emphasized that.  You can
rip out the lines that mess with the window and buffer if you just want
to run it directly and leave the results buffer open.

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

* Re: Slow speed of week and month views
  2017-08-06 10:18               ` Karl Voit
@ 2017-08-07 11:41                 ` Nicolas Goaziou
  0 siblings, 0 replies; 14+ messages in thread
From: Nicolas Goaziou @ 2017-08-07 11:41 UTC (permalink / raw)
  To: Karl Voit; +Cc: Karl Voit, emacs-orgmode

Hello,

Karl Voit <devnull@Karl-Voit.at> writes:

> Results at the end of this posting.

Thank you.

I assume you have around 17 agenda files, use a single day view and have
much more SCHEDULED than DEADLINE? Is it right?

> I may take some time to come up with a minimum config and my agenda
> files.

I suggest to use

  M-: (org-agenda nil "a")

as a first step.

> However, in case this is much faster compared to my current
> situation, this does not help me with my issues and just shows that
> Org itself does not have urgent performance issues, right?

No worries. It will still be excruciatingly slow.

Regards,

-- 
Nicolas Goaziou

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

end of thread, other threads:[~2017-08-07 11:42 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-02-16 19:58 Slow speed of week and month views Matt Lundin
2010-02-21  7:37 ` Carsten Dominik
2010-02-21 12:34   ` Matthew Lundin
  -- strict thread matches above, loose matches on Subject: below --
2017-08-04 15:14 [Orgmode] " Christoph Groth
2017-08-05  3:07 ` Adam Porter
2017-08-05 21:09   ` Karl Voit
2017-08-05 22:17     ` John Kitchin
2017-08-05 22:33       ` Nicolas Goaziou
2017-08-05 22:35     ` Nicolas Goaziou
2017-08-06  8:00       ` Karl Voit
2017-08-06  8:15         ` Nicolas Goaziou
2017-08-06  9:01           ` Karl Voit
2017-08-06  9:13             ` Adam Porter
2017-08-06 10:03               ` Karl Voit
2017-08-06 10:28                 ` Adam Porter
2017-08-06  9:26             ` Nicolas Goaziou
2017-08-06 10:18               ` Karl Voit
2017-08-07 11:41                 ` Nicolas Goaziou

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