From mboxrd@z Thu Jan 1 00:00:00 1970 From: Adam Spiers Subject: FR: per-session caching of *Org Agenda* buffer Date: Sat, 29 Dec 2007 23:13:23 +0000 Message-ID: <20071229231323.GA20947@atlantic.linksys.moosehall> Reply-To: Adam Spiers Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Return-path: Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1J8kru-0001JA-Gu for emacs-orgmode@gnu.org; Sat, 29 Dec 2007 18:13:26 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1J8krt-0001HZ-Qp for emacs-orgmode@gnu.org; Sat, 29 Dec 2007 18:13:25 -0500 Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1J8krt-0001HE-Le for emacs-orgmode@gnu.org; Sat, 29 Dec 2007 18:13:25 -0500 Received: from mail.beimborn.com ([70.84.38.100]) by monty-python.gnu.org with esmtps (TLS-1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1J8krt-0003jw-7i for emacs-orgmode@gnu.org; Sat, 29 Dec 2007 18:13:25 -0500 Received: from mail.beimborn.com (localhost.localdomain [127.0.0.1]) by mail.beimborn.com (8.12.11.20060308/8.12.8) with ESMTP id lBTNDOpI022290 for ; Sat, 29 Dec 2007 17:13:24 -0600 Received: from localhost (localhost [[UNIX: localhost]]) by mail.beimborn.com (8.12.11.20060308/8.12.11/Submit) id lBTNDNX2022285 for emacs-orgmode@gnu.org; Sat, 29 Dec 2007 23:13:23 GMT Content-Disposition: inline List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: org-mode mailing list 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?