[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [O] Performance problem when switching agenda views - need for cache
From: |
Rainer Stengele |
Subject: |
Re: [O] Performance problem when switching agenda views - need for cache? |
Date: |
Sat, 16 Jul 2011 00:21:47 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20110624 Thunderbird/5.0 |
Am 15.07.2011 22:10, schrieb Nick Dokos:
> Rainer Stengele <address@hidden> wrote:
>
>
>> Many a times I look at my weekly agenda view, working on the items of
>> today and looking back over the weekdays to quickly find todos I have
>> to to add further notes and clock times.
>>
>> Now, sometimes I do not find the right todo in the weekly view, so I
>> activate the list of all open todos in order to find the appropriate
>> one.
>>
>> This process, switching to "all todos" and back to "weekly agenda"
>> takes about 18 (!) seconds netto.
>> ...
>>
>> org-agenda 2
>> 17.624 8.812
>> org-agenda-get-day-entries 64
>> 13.610000000 0.2126562500
>
> Clearly, the 64 calls to org-agenda-get-day-entries hurt: a cursory look shows
>
> ,----
> | (while (setq d (pop day-numbers))
> | ...
> | (setq files thefiles
> | rtnall nil)
> | (while (setq file (pop files))
> | ...
> | (setq rtn (apply 'org-agenda-get-day-entries
> | file date
> | org-agenda-entry-types)))))
> | ...
> `----
>
> so it loops over all the days and for each day it loops over all the
> files (7 days * 8 files = 56 times in org-agenda-list) - it "only" loops
> over the 8 files for a given date in org-todo-list. So your normal
> weekly agenda should take about 11 seconds or so (56/64 * 13) -
> does it? If so, that's already too much.
>
> Anything you can do to reduce the burden will help:
>
> o reducing the number of days - nah
> o reducing the number of files - maybe
> o reducing the size of each file - yes!
>
> particularly this one:
>
> 21567 169446 1524359 f4.org
>
> which is 5x bigger than any of the others. You might just try leaving out
> of the agenda file list, just to see what effect it has.
>
>> org-agenda-run-series 1
>> 11.812 11.812
>
> Another thing that makes a difference is your
> org-agenda-custom-commands: afaict, this function is only called if
> org-agenda-custom-commands has an entry with a series of commands
> associated with it: the function runs overs the series of commands. I
> could try to deduce/guess what's in there, but it would be simpler if
> you just tell us :-) In any case, that's also a time hog.
>
>> org-agenda-list 1
>> 10.921 10.921
>> org-let2 1
>> 10.921 10.921
>> org-agenda-get-scheduled 56
>> 7.284 0.1300714285
>> org-todo-list 1
>> 5.281 5.281
>> org-agenda-get-todos 8
>> 3.594 0.44925
>> ...
>
> Nick
>
>
>
Nick, thanks for your analysis,
my custom agenda command for the weekly agenda is this:
...
("07" "agenda no todos sorted prio up - 7 days"
((agenda ".. agenda"
(
(org-agenda-ndays 7)
(org-agenda-start-with-log-mode t)
(org-agenda-overriding-header "Weekly Agenda"))))
((org-agenda-sorting-strategy '(time-up priority-down todo-state-up))))
...
the todo list ist default "C-c a t"
It will not be easy to cut down my org files to smaller sizes.
Best,
- Rainer