From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sebastien Vauban Subject: Re: [PATCH] Fix massive slowdown in org-id-find Date: Tue, 24 Mar 2015 10:02:17 +0100 Message-ID: <86h9ta3h0m.fsf@example.com> References: <87bnjj2565.fsf@sophokles.streitblatt.de> <87vbhrnz07.fsf@nicolasgoaziou.fr> Mime-Version: 1.0 Content-Type: text/plain Return-path: List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org-mXXj517/zsQ@public.gmane.org Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org-mXXj517/zsQ@public.gmane.org To: emacs-orgmode-mXXj517/zsQ@public.gmane.org Nicolas Goaziou wrote: > Florian Beck writes: > >> the recent changes in org-id (presumably >> 8cdb2eef0f9f98f9e00a5e689decfe341fe0c6ec) lead to a massive slowdown. > > Would you mind elaborating a bit? Slow down doing what? In which cases? > Could you profile it? > >> org-id-find is slow as it is, now I find it almost unusable. >> >> Attached patch provides a fix. > > Thanks. However, your patch is (partly) wrong. > >> - (re (org-re-property property nil (not value)))) >> - (catch 'exit >> - (while (re-search-forward re nil t) >> - (when (if value (equal value (org-entry-get (point) property nil t)) >> - (org-entry-get (point) property nil t)) >> - (throw 'exit (progn (org-back-to-heading t) (point))))))))) >> + (re (org-re-property property nil (not value) value))) >> + (when (re-search-forward re nil t) >> + (org-back-to-heading t) >> + (point))))) > > Here, it catches false positives, e.g., lines looking like properties in > example blocks. It also overlooks accumulated values. It should fail > with "make test". > > However, the optional VALUE argument is nice (I think some profiling > would still be welcome, tho). For my own information, does one know if it's possible to integrate profiling tests in ERT? So that one could write that if test X takes more than 2 s (for example), the test would fail? Best regards, Seb -- Sebastien Vauban