Re: [O] question about performance when having multiple todo blocks from the same org files ..

2014-01-17 Thread Bastien
Hi Rainer,

Rainer Stengele rainer.steng...@online.de writes:

 I was wondering if Org does run through all the org files again and
 again in order to collect the data wanted

Yes it does.  

Tips for optimizing the agenda speed can be found here:
http://orgmode.org/worg/agenda-optimization.html

But I'm not sure it will help in this case.

-- 
 Bastien



[O] question about performance when having multiple todo blocks from the same org files ..

2014-01-13 Thread Rainer Stengele
Hi.

I have a complex agenda function as can be seen below.
Beside an agenda call I do want to show todos separated in blocks, grouped by 
priority or tags.
I want to show my prio A todos as one block before showing the rest of the 
todos sorted by prio.
I was wondering if Org does run through all the org files again and again in 
order to collect the data wanted
or if there is something like a cache is being filled when running through all 
buffers, collects all todos and then groups, sorts
and is availble for printing out whats wanted.

Thank you for a reply from someone who knows the internals.

Rainer

Org-mode version 8.2.2 (release_8.2.2-193-gf10166)

...
(01 agenda - prio A,B todos - sorted prio up - today  ;;
 (

  ;; show ONGOING todos first, but only if unscheduled, skip if 
scheduled
  (tags-todo ONGOING
 ((org-agenda-skip-function '(org-agenda-skip-entry-if 
'scheduled))
  (org-agenda-overriding-header ONGOING todos: )))
  (agenda todays agenda
  (
   ;; (org-agenda-skip-function
   ;; (lambda nil
   ;;   (org-agenda-skip-entry-if 'regexp :ONGOING:)))
   ;; (org-agenda-skip-entry-if 'regexp :ONGOING:)))
   (org-agenda-span 'day)
   (org-agenda-start-with-log-mode t)
   (org-agenda-start-with-clockreport-mode t)

   (org-agenda-overriding-header Today's Agenda)))

  (alltodo !!! TODOs Prio A - skip ONGOING todos!!!
   (
(org-agenda-skip-function (lambda nil
(or (org-agenda-skip-entry-if 
(quote notregexp) \\=.*\\[#A\\])
(org-agenda-skip-entry-if 
'regexp :ONGOING:)
(org-agenda-skip-entry-if 
'scheduled 'deadline 
(org-agenda-overriding-header !!! TODOs prio A - skip 
ONGOING todos: !!!)
))
  (alltodo todos Prio B til D - skip ONGOING todos
   (
(org-agenda-skip-function (lambda nil
(or (org-agenda-skip-entry-if 
(quote notregexp) \\=.*\\[#B\\|#C\\|#D\\])
(org-agenda-skip-entry-if 
'regexp :ONGOING:)
(org-agenda-skip-entry-if 
'scheduled 'deadline 
(org-agenda-overriding-header All todos prio B til D - 
skip ONGOING todos: )
))
  )
 ((org-agenda-sorting-strategy '(time-up priority-down todo-state-up
...