emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Max Mikhanosha <max@openchat.com>
To: Rustom Mody <rustompmody@gmail.com>
Cc: emacs-orgmode <emacs-orgmode@gnu.org>
Subject: Re: speeding up org (was How could I mix COMMENT and TODO?)
Date: Fri, 06 Apr 2012 11:17:48 -0400	[thread overview]
Message-ID: <87haww7uub.wl%max@openchat.com> (raw)
In-Reply-To: <CAJ+TeocyX74=mYQ3LXNZuA1oyCGVpPtdA4Sh7xnbSkAEdZxmvQ@mail.gmail.com>

At Fri, 6 Apr 2012 18:40:43 +0530,
Rustom Mody wrote:
> 
> François wrote:
>  
> 
>     In my very first tries with Org, a few months ago, I put all Org files
>     into the agenda, to discover that Org was very, very slow.  So, I
>     changed it all and collected all agenda and TODO into three files only,
>     holding lots of links to all other Org files where the information
>     really was.  Org recovered all its speed.  And besides, to repair the
>     lost search capabilities, I kludged M-x rgrep so it could search all Org
>     files and "reveal" contents when visiting hits.  Well, the "reveal" does
>     not always work, but yet, the quicker search is constantly useful to me.
>    
>     Currently, having put TODOs back in their proper Org files and declaring
>     them as agenda files, 38 agenda files are taken out from 360 Org files.
>     Even if slightly less speedy than 3 agenda files, this is still very
>     bearable: Org does not crawl.  The way Org handles "org-agenda-files" as
>     a string naming a file is really convenient to me, it eases the writing
>     of external programs acting on them all.  All in all, very satisfactory!
> 
> Hi François,
> 
> I made the suggestion that ragel should/could be part of emacs:
> http://lists.gnu.org/archive/html/emacs-orgmode/2012-03/msg00864.html
> 
> Summarised by saying that if ragel is integrated into elisp, org code could become both significantly faster and more readable.
> 
> That most sluggish elisp code may be so due to regular expression code, is discussed here:
> http://lists.gnu.org/archive/html/emacs-devel/2010-04/msg01202.html
> 
> [In all fairness this is all a bit OT for an org list and should really be on an emacs devel list]

Experiencing slow generation of agenda, was the reason for writing
sticky agendas branch. It takes more of a "fix the symptom" approach,
instead speeding up agenda generation, it caches the agenda buffer
itself and lets user refresh it, while also allowing for multiple
agenda buffers, so that a C-c a / search buffer, does not discard your
C-c a a one.

My initial idea was to wrap all the scanner functions (like
org-todo-list or org-tags-view), with caches, but after a day or so it
was obvious that its not a "a few days" task.

But if someone takes up task of speeding up agenda generation, IMHO
the idea of re-factoring the scanning functions to avoid re-scanning
.org files that had not changed, will have best chance of producing
results.

Regards,
  Max

      reply	other threads:[~2012-04-06 15:18 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-04-06 13:10 speeding up org (was How could I mix COMMENT and TODO?) Rustom Mody
2012-04-06 15:17 ` Max Mikhanosha [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.orgmode.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87haww7uub.wl%max@openchat.com \
    --to=max@openchat.com \
    --cc=emacs-orgmode@gnu.org \
    --cc=rustompmody@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).