Hi Jörg, I think it would be feasible to write such a modification.
- Carsten On 20.5.2013, at 15:36, Jonas Hörsch <co...@online.de> wrote: > hello everyone, > > i've just started to use calfw to get a nice calendar-like display of my > agenda. unfortunately i was slighly dismayed at the build-up speed > easily exceeding a few seconds on my not so packed schedule. profiling > into the code i found that the problem mainly is: > > there exists only the possibility to retrieve agenda data for one day > day, org-agenda.el's org-agenda-get-day-entries, rather than for a range > of days. this makes it necessary to loop over --get-day-entries to collect > all entries to show in the monthly calendar. > > --get-day-entries for its part has to parse (basically regex-search > through) the respective org agenda file completely on each invocation; > effectively done by org-agenda-get-{todos,blocks,sexps,...}. > > i imagine it is quite feasible to implement > (defun org-agenda-get-entries (file beg end &rest args) ...) > to sift through FILE but once and return an alist like > ((date . (entry1 entry2 ..)) ..) > containing all entries between dates BEG and END, inclusive. > > neglecting the extra overhead for sorting entries into the alist, this > promises to speed up typical weekly agenda collection by a factor of 7 > and calfw even by a factor of approx. 30, shouldn't it? > > before i start a local branch to try myself on this refactoring work, > i'd welcome a few comments, why i should be likely to fail or succeed! > > cheers, > jonas > >