org-mode/lisp
Matt Lundin 4760c3b948 Make timestamp search in org-entry-properties more efficient.
* lisp/org.el: (org-entry-properties) Stop scanning for timestamps if
a specific timestamp property (e.g., DEADLINE, SCHEDULED, etc.) is
requested and a match is found. Also, if a specific timestamp property
is requested, do not push non-relevant timestamps onto property list.

This change only effects org-entry-properties when a specific
timestamp is requested with the special flag, as in:

(org-entry-properties nil 'special "SCHEDULED")

Previously, even if only the SCHEDULED timestamp was requested,
org-entry-properties would parse all the timestamps in an entry. This
extra parsing could slow down the construction of agenda views,
especially with entries that contained a large number of log
items (CLOCK, state changes, etc.). The function org-entry-get,
however, is only interested in the first occurrence of the item. When
looking for a specific type of timestamp, org-entry-properties now
stops searching for timestamps after the match is found, unless the
property is "CLOCK".

Here are the relevant ELP results:

Before:

org-entry-get	     296         0.4724579999  0.0015961418
org-entry-properties 31          0.3438769999  0.0110928064

After:

org-entry-get        296         0.1447729999  0.0004890979
org-entry-properties 31          0.015765      0.0005085483
2010-12-13 15:13:36 +01:00
..
ob-asymptote.el Version number back to 7.4 2010-12-10 18:49:40 +01:00
ob-C.el Version number back to 7.4 2010-12-10 18:49:40 +01:00
ob-calc.el Version number back to 7.4 2010-12-10 18:49:40 +01:00
ob-clojure.el Version number back to 7.4 2010-12-10 18:49:40 +01:00
ob-comint.el Version number back to 7.4 2010-12-10 18:49:40 +01:00
ob-css.el Version number back to 7.4 2010-12-10 18:49:40 +01:00
ob-ditaa.el Version number back to 7.4 2010-12-10 18:49:40 +01:00
ob-dot.el Version number back to 7.4 2010-12-10 18:49:40 +01:00
ob-emacs-lisp.el Version number back to 7.4 2010-12-10 18:49:40 +01:00
ob-eval.el Version number back to 7.4 2010-12-10 18:49:40 +01:00
ob-exp.el Version number back to 7.4 2010-12-10 18:49:40 +01:00
ob-gnuplot.el Version number back to 7.4 2010-12-10 18:49:40 +01:00
ob-haskell.el Version number back to 7.4 2010-12-10 18:49:40 +01:00
ob-js.el Version number back to 7.4 2010-12-10 18:49:40 +01:00
ob-keys.el Version number back to 7.4 2010-12-10 18:49:40 +01:00
ob-latex.el Version number back to 7.4 2010-12-10 18:49:40 +01:00
ob-ledger.el Version number back to 7.4 2010-12-10 18:49:40 +01:00
ob-lisp.el Version number back to 7.4 2010-12-10 18:49:40 +01:00
ob-lob.el Version number back to 7.4 2010-12-10 18:49:40 +01:00
ob-matlab.el Version number back to 7.4 2010-12-10 18:49:40 +01:00
ob-mscgen.el Version number back to 7.4 2010-12-10 18:49:40 +01:00
ob-ocaml.el Version number back to 7.4 2010-12-10 18:49:40 +01:00
ob-octave.el Version number back to 7.4 2010-12-10 18:49:40 +01:00
ob-org.el Version number back to 7.4 2010-12-10 18:49:40 +01:00
ob-perl.el Version number back to 7.4 2010-12-10 18:49:40 +01:00
ob-plantuml.el Version number back to 7.4 2010-12-10 18:49:40 +01:00
ob-python.el Version number back to 7.4 2010-12-10 18:49:40 +01:00
ob-R.el Version number back to 7.4 2010-12-10 18:49:40 +01:00
ob-ref.el Fixup 95bb16661b 2010-12-12 20:09:28 +01:00
ob-ruby.el Version number back to 7.4 2010-12-10 18:49:40 +01:00
ob-sass.el Version number back to 7.4 2010-12-10 18:49:40 +01:00
ob-scheme.el Version number back to 7.4 2010-12-10 18:49:40 +01:00
ob-screen.el Version number back to 7.4 2010-12-10 18:49:40 +01:00
ob-sh.el Version number back to 7.4 2010-12-10 18:49:40 +01:00
ob-sql.el Version number back to 7.4 2010-12-10 18:49:40 +01:00
ob-sqlite.el Version number back to 7.4 2010-12-10 18:49:40 +01:00
ob-table.el Version number back to 7.4 2010-12-10 18:49:40 +01:00
ob-tangle.el Version number back to 7.4 2010-12-10 18:49:40 +01:00
ob.el Fixup 95bb16661b 2010-12-12 20:09:28 +01:00
org-agenda.el Merge branch 'master' of git+ssh://repo.or.cz/srv/git/org-mode 2010-12-13 15:11:14 +01:00
org-archive.el Version number back to 7.4 2010-12-10 18:49:40 +01:00
org-ascii.el Version number back to 7.4 2010-12-10 18:49:40 +01:00
org-attach.el Version number back to 7.4 2010-12-10 18:49:40 +01:00
org-bbdb.el Version number back to 7.4 2010-12-10 18:49:40 +01:00
org-beamer.el Version number back to 7.4 2010-12-10 18:49:40 +01:00
org-bibtex.el Version number back to 7.4 2010-12-10 18:49:40 +01:00
org-capture.el Version number back to 7.4 2010-12-10 18:49:40 +01:00
org-clock.el Version number back to 7.4 2010-12-10 18:49:40 +01:00
org-colview-xemacs.el Version number back to 7.4 2010-12-10 18:49:40 +01:00
org-colview.el Version number back to 7.4 2010-12-10 18:49:40 +01:00
org-compat.el Version number back to 7.4 2010-12-10 18:49:40 +01:00
org-complete.el Version number back to 7.4 2010-12-10 18:49:40 +01:00
org-crypt.el Version number back to 7.4 2010-12-10 18:49:40 +01:00
org-ctags.el Version number back to 7.4 2010-12-10 18:49:40 +01:00
org-datetree.el Version number back to 7.4 2010-12-10 18:49:40 +01:00
org-docbook.el Version number back to 7.4 2010-12-10 18:49:40 +01:00
org-docview.el Version number back to 7.4 2010-12-10 18:49:40 +01:00
org-entities.el Version number back to 7.4 2010-12-10 18:49:40 +01:00
org-exp-blocks.el Version number back to 7.4 2010-12-10 18:49:40 +01:00
org-exp.el Version number back to 7.4 2010-12-10 18:49:40 +01:00
org-faces.el Add current time to time grid in agenda 2010-12-12 09:26:01 +01:00
org-feed.el Version number back to 7.4 2010-12-10 18:49:40 +01:00
org-footnote.el Version number back to 7.4 2010-12-10 18:49:40 +01:00
org-freemind.el Version number back to 7.4 2010-12-10 18:49:40 +01:00
org-gnus.el Version number back to 7.4 2010-12-10 18:49:40 +01:00
org-habit.el Version number back to 7.4 2010-12-10 18:49:40 +01:00
org-html.el Add displaymath to MathJax setup 2010-12-12 13:13:45 +01:00
org-icalendar.el Version number back to 7.4 2010-12-10 18:49:40 +01:00
org-id.el Version number back to 7.4 2010-12-10 18:49:40 +01:00
org-indent.el Version number back to 7.4 2010-12-10 18:49:40 +01:00
org-info.el Version number back to 7.4 2010-12-10 18:49:40 +01:00
org-inlinetask.el Version number back to 7.4 2010-12-10 18:49:40 +01:00
org-irc.el Version number back to 7.4 2010-12-10 18:49:40 +01:00
org-jsinfo.el Version number back to 7.4 2010-12-10 18:49:40 +01:00
org-latex.el Version number back to 7.4 2010-12-10 18:49:40 +01:00
org-list.el Version number back to 7.4 2010-12-10 18:49:40 +01:00
org-mac-message.el Version number back to 7.4 2010-12-10 18:49:40 +01:00
org-macs.el Version number back to 7.4 2010-12-10 18:49:40 +01:00
org-mew.el Version number back to 7.4 2010-12-10 18:49:40 +01:00
org-mhe.el Version number back to 7.4 2010-12-10 18:49:40 +01:00
org-mks.el Version number back to 7.4 2010-12-10 18:49:40 +01:00
org-mobile.el Version number back to 7.4 2010-12-10 18:49:40 +01:00
org-mouse.el Version number back to 7.4 2010-12-10 18:49:40 +01:00
org-plot.el Version number back to 7.4 2010-12-10 18:49:40 +01:00
org-protocol.el Version number back to 7.4 2010-12-10 18:49:40 +01:00
org-publish.el Version number back to 7.4 2010-12-10 18:49:40 +01:00
org-remember.el Version number back to 7.4 2010-12-10 18:49:40 +01:00
org-rmail.el Version number back to 7.4 2010-12-10 18:49:40 +01:00
org-src.el Version number back to 7.4 2010-12-10 18:49:40 +01:00
org-table.el Support #+CONSTANTS in non - Org-mode files 2010-12-12 13:22:11 +01:00
org-taskjuggler.el Version number back to 7.4 2010-12-10 18:49:40 +01:00
org-timer.el Version number back to 7.4 2010-12-10 18:49:40 +01:00
org-vm.el Version number back to 7.4 2010-12-10 18:49:40 +01:00
org-w3m.el Version number back to 7.4 2010-12-10 18:49:40 +01:00
org-wl.el Version number back to 7.4 2010-12-10 18:49:40 +01:00
org-xoxo.el Version number back to 7.4 2010-12-10 18:49:40 +01:00
org.el Make timestamp search in org-entry-properties more efficient. 2010-12-13 15:13:36 +01:00