[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Orgmode] FR: per-session caching of *Org Agenda* buffer

From: Carsten Dominik
Subject: Re: [Orgmode] FR: per-session caching of *Org Agenda* buffer
Date: Tue, 15 Jan 2008 12:48:16 +0100

On Dec 30, 2007, at 12:13 AM, Adam Spiers wrote:

For me at least, generation of the *Org Agenda* buffer takes a good
1.5 seconds or so each time, on a pretty decent machine.  This isn't
too bad, and is at least in part due to my tendency for Structured
Procrastination which leads to very long TODO.org files (and lots of
posts to this list ;-)

However, I think it would be pretty easy to smash this 1.5s down to
0.01s or quicker in the majority of cases, simply by implementing a
basic Makefile-like awareness of all the dependencies which form
inputs into the process of generating the *Org Agenda* buffer.  Then,
while the first generation after emacs startup would still be slow,
any subsequent generation would be instant as long as none of the
dependent inputs (agenda files, custom variables etc.,
day/week/month/grid/log etc. view modes) had changed since the last
generation, since it would simply be a matter of redisplaying the
existing *Org Agenda* buffer.

It sounds doable to me, and in fact pretty easy.  The only tricky bit
might be figuring out whether any relevant variables had changed.  Are
there any other inputs to the generation process I've missed?

Hi Adam,

yes, Org-mode is slow an creating agendas from long files. First of all,
have you compiled org.el?  That might already help.

2nd, I don't think at all that this is simple, unless you keep redisplaying
the exact same agenda all the time, in which case it is easier to just
switch back to the agenda buffer.

Improving the speed of agenda creation would require an internal representation of all the data and deriving the agenda stuff from that. I don't want to
go there, so why do you think this is simple?

- Carsten

Emacs-orgmode mailing list
Remember: use `Reply All' to send replies to the list.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]