From mboxrd@z Thu Jan 1 00:00:00 1970 From: Carsten Dominik Subject: Re: [PERF] Slow Org Agenda Custom Commands Date: Sun, 18 Jan 2009 20:50:18 +0100 Message-ID: <5804861A-7F2F-4034-B4D0-19910F6A1984@uva.nl> References: <2df907590901101608j16f2c5a9xe5bcf5d0c85a75ff@mail.gmail.com> <2df907590901112156t42541072j8f4501b24a4d9df6@mail.gmail.com> Mime-Version: 1.0 (Apple Message framework v930.3) Content-Type: multipart/mixed; boundary="===============1180647050==" Return-path: Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1LOdf8-0003te-2q for emacs-orgmode@gnu.org; Sun, 18 Jan 2009 14:50:26 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1LOdf6-0003tB-Du for emacs-orgmode@gnu.org; Sun, 18 Jan 2009 14:50:25 -0500 Received: from [199.232.76.173] (port=38356 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1LOdf6-0003t8-B6 for emacs-orgmode@gnu.org; Sun, 18 Jan 2009 14:50:24 -0500 Received: from mail-ew0-f20.google.com ([209.85.219.20]:53995) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1LOdf5-0008KY-M9 for emacs-orgmode@gnu.org; Sun, 18 Jan 2009 14:50:24 -0500 Received: by ewy13 with SMTP id 13so96593ewy.18 for ; Sun, 18 Jan 2009 11:50:22 -0800 (PST) In-Reply-To: <2df907590901112156t42541072j8f4501b24a4d9df6@mail.gmail.com> 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: Jason Jackson Cc: emacs-orgmode@gnu.org --===============1180647050== Content-Type: multipart/alternative; boundary=Apple-Mail-33-597947833 --Apple-Mail-33-597947833 Content-Type: text/plain; charset=US-ASCII; format=flowed; delsp=yes Content-Transfer-Encoding: 7bit On Jan 12, 2009, at 6:56 AM, Jason Jackson wrote: > Thank you Matthew, this improved the performance to an acceptable > ~half second > > I still wonder if multiple property searches could be optimized > somehow, but for my purposes I'm satisfied =) Hi Jason, property searches are really un-optimized in Org. Tag searches are faster, but also not well optimized. I do have ideas how to improve the situation with some cacheing. However, this is a case where the fact that Org-mode is using plain text files is biting you. It is very hard, between two searched (the first one creating the cache, the second one using it), to be sure that the text base has not been modified by hand. I could probably create a cache and make the user responsible to update it, but I have not made this step. - Carsten > > > For example, you can't use agenda filter commands with org-stuck- > project-list, thus you'd have to resort to a slow property search. > Some people might want to search for high priority stuck projects. > (I solved this by introducing different 'priority' todo states) > > -Jason > > On Mon, Jan 12, 2009 at 1:34 PM, Matthew Lundin > wrote: > > Hi Jason, > > "Jason Jackson" writes: > > > I'm using the following org agenda custom command, with a > relatively small > > org-mode text file, and agenda creation is taking around 3-4 > seconds, it > > becomes unbearably worse if I modify stuck-projects to also use > properties > > searches) > > > > Is there anything I can change to speed up the commands execution; > or > > developer changes to org-mode? > > > > (setq org-agenda-custom-commands > > '(("h" "Next Action" > > ( > > (agenda "" > > ((org-agenda-ndays 1) > > (org-agenda-time-grid '()) > > (org-deadline-warning-days 5) > > (org-agenda-sorting-strategy '(time-up priority- > down)) > > (org-agenda-skip-deadline-if-done t) > > (org-agenda-overriding-header "Today's Agenda: ") > > )) > > ;;;;;;; SLOW COMMAND #1 > > (tags "@HOME-habit-__IGNORE-SCHEDULED>\"<2000-01-01>\"/ > TODO|BLOCKED| > > SUBMIT" > > ((org-agenda-sorting-strategy '(priority-down)) > > (org-agenda-overriding-header "Unscheduled Todo > > (@Home): ") > > )) > > As you suggest, any searches for properties other than TODO, LEVEL, > and CATEGORY can be quite slow. > > Have you considered using a todo search and then using secondary > filtering to limit by tag. This would enable you to use either of the > following variables: > > - org-agenda-todo-ignore-with-date > - org-agenda-todo-ignore-scheduled > > Best, > Matt > > _______________________________________________ > Emacs-orgmode mailing list > Remember: use `Reply All' to send replies to the list. > Emacs-orgmode@gnu.org > http://lists.gnu.org/mailman/listinfo/emacs-orgmode --Apple-Mail-33-597947833 Content-Type: text/html; charset=US-ASCII Content-Transfer-Encoding: quoted-printable
On Jan 12, 2009, = at 6:56 AM, Jason Jackson wrote:

Thank you = Matthew, this improved the performance to an acceptable ~half = second

I still wonder if multiple property searches could be = optimized somehow, but for my purposes I'm satisfied = =3D)

Hi = Jason,

property searches are really = un-optimized in Org.  Tag searches are faster, but
also = not well optimized.

I do have ideas how to = improve the situation with some cacheing.
However, this = is a case where the fact that Org-mode is using
plain = text files is biting you.  It is very hard, 
between = two searched (the first one creating the cache,  the = second
one using it), to be sure that the text base has not = been modified
by hand.

I could = probably create a cache and make the user responsible = to
update it, but I have not made this = step.

- Carsten



For example, you can't use agenda filter commands = with org-stuck-project-list, thus you'd have to resort to a slow = property search. Some people might want to search for high priority = stuck projects. (I solved this by introducing different 'priority' todo = states)

-Jason

On Mon, Jan 12, = 2009 at 1:34 PM, Matthew Lundin <mdl@imapmail.org> wrote:

Hi Jason,
=

"Jason Jackson" <jason@cvk.ca> writes:

> I'm using the = following org agenda custom command, with a relatively small
> = org-mode text file, and agenda creation is taking around 3-4 seconds, = it
> becomes unbearably worse if I modify stuck-projects to also use = properties
> searches)
>
> Is there anything I can change to = speed up the commands execution; or
> developer changes to = org-mode?
>
> (setq org-agenda-custom-commands
>   =     '(("h" "Next Action"
>         =  (
>           (agenda ""
>   =                 = ((org-agenda-ndays 1)
>             =        (org-agenda-time-grid '())
>   =                 =  (org-deadline-warning-days 5)
>         =            (org-agenda-sorting-strategy = '(time-up priority-down))
>           =          (org-agenda-skip-deadline-if-done = t)
>                   =  (org-agenda-overriding-header "Today's Agenda: ")
>   =                  ))
> =           ;;;;;;; SLOW COMMAND #1
>   =         (tags = "@HOME-habit-__IGNORE-SCHEDULED>\"<2000-01-01>\"/TODO|BLOCKED|
> = SUBMIT"
>                 = ((org-agenda-sorting-strategy '(priority-down))
>     =             =  (org-agenda-overriding-header "Unscheduled Todo
>   =     (@Home): ")
>           =        ))

As you suggest, any = searches for properties other than TODO, LEVEL,
and CATEGORY can be = quite slow.

Have you considered using a todo search and then = using secondary
filtering to limit by tag. This would enable you to = use either of the
following variables:

- = org-agenda-todo-ignore-with-date
- = org-agenda-todo-ignore-scheduled

Best,
Matt
=

= _______________________________________________
Emacs-orgmode mailing = list
Remember: use `Reply All' to send replies to the list.
Emacs-orgmode@gnu.org
http://lists.= gnu.org/mailman/listinfo/emacs-orgmode

= --Apple-Mail-33-597947833-- --===============1180647050== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Emacs-orgmode mailing list Remember: use `Reply All' to send replies to the list. Emacs-orgmode@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-orgmode --===============1180647050==--