From mboxrd@z Thu Jan 1 00:00:00 1970 From: Nick Dokos Subject: Re: notifications for todo items Date: Sun, 26 Feb 2012 00:04:59 -0500 Message-ID: <18201.1330232699@alphaville> References: <87hayixwu8.fsf@micropit.couberia.bzh> <7623.1329960485@alphaville> <87vcmyvtcu.fsf@micropit.couberia.bzh> <12871.1330128535@alphaville> <87k43a5ucg.fsf@micropit.couberia.bzh> Reply-To: nicholas.dokos@hp.com Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([208.118.235.92]:33797) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1S1WII-0003jc-Um for emacs-orgmode@gnu.org; Sun, 26 Feb 2012 00:05:17 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1S1WIB-0003n9-QP for emacs-orgmode@gnu.org; Sun, 26 Feb 2012 00:05:10 -0500 Received: from g6t0186.atlanta.hp.com ([15.193.32.63]:34125) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1S1WIB-0003lj-KH for emacs-orgmode@gnu.org; Sun, 26 Feb 2012 00:05:03 -0500 In-Reply-To: Message from =?us-ascii?Q?=3D=3Futf-8=3FQ=3FPeter=5FM=3DC3=3D?= =?us-ascii?Q?BCnster=3F=3D?= of "Sun\, 26 Feb 2012 01\:09\:03 +0100." <87k43a5ucg.fsf@micropit.couberia.bzh> 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@gnu.org Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: =?us-ascii?Q?=3D=3Futf-8=3FQ=3FPeter=5FM=3DC3=3DBCnster=3F=3D?= Cc: nicholas.dokos@hp.com, emacs-orgmode@gnu.org Peter M=C3=BCnster wrote: > On Sat, Feb 25 2012, Nick Dokos wrote: >=20 > > A quick first impression: orgntf-process seems expensive. It seems > > to take 100% of one core (I've got a quad-core processor) for three or > > four seconds every fifty seconds. Unfortunately, the core is the same o= ne > > that's running emacs, so emacs stops responding for those three or four > > seconds. I have disabled org-notify for now. >=20 > How many lines do you have in your org-files? > (I've about 200 and execution time is about 100ms.) >=20 > I call now "(org-element-parse-buffer 'heading)", I hope it's faster for > you. Is it faster, when the file is byte-compiled? >=20 > Other ideas: > - I could divide orgntf-process into several tasks, so that things run > more smoothly. > - You could call (org-notify-start -60), so the process will be called, > when idle for one minute. >=20 > The file has a new home: https://github.com/p-m/org-notify > There is now `orgntf-verbose' to see execution time of > `orgntf-todo-list'. >=20 > Thanks for testing! Profiling results after byte compiling both org-notify.el and org-element.el (the rest of org is uncompiled code): ,---- | org-element-parse-elements 891 = 3.8462059999 0.0043167295 | orgntf-process 1 = 1.594772 1.594772 | orgntf-time-measure 1 = 1.594763 1.594763 | orgntf-todo-list 1 = 1.59444 1.59444 | org-element-parse-buffer 15 = 1.5755259999 0.1050350666 | org-element-current-element 876 = 1.5125120000 0.0017266118 | org-element-headline-parser 876 = 1.4775100000 0.0016866552 | org-entry-properties 1752 = 0.7201820000 0.0004110627 | org-element-parse-secondary-string 876 = 0.4682000000 0.0005344748 | org-element-parse-objects 942 = 0.4317159999 0.0004582972 | org-element-get-next-object-candidates 1151 = 0.4044249999 0.0003513683 | org-back-to-heading 3504 = 0.1251230000 3.570...e-05 | org-element-time-stamp-successor 969 = 0.1206909999 0.0001245521 | org-heading-components 876 = 0.0532400000 6.077...e-05 | org-element-latex-or-entity-successor 1884 = 0.0469810000 2.493...e-05 | org-end-of-subtree 876 = 0.0365460000 4.171...e-05 | org-match-string-no-properties 4167 = 0.0302490000 7.259...e-06 | org-element-link-successor 998 = 0.0220160000 2.206...e-05 | org-get-limited-outline-regexp 1676 = 0.0199100000 1.187...e-05 | org-element-sub/superscript-successor 953 = 0.0132220000 1.387...e-05 | org-truely-invisible-p 876 = 0.0127170000 1.451...e-05 | org-get-property-block 876 = 0.0118430000 1.351...e-05 | org-element-map 15 = 0.010387 0.0006924666 | org-element-inline-src-block-successor 942 = 0.0066240000 7.031...e-06 | org-element-text-markup-successor 942 = 0.0061229999 6.499...e-06 | org-at-heading-p 1767 = 0.0058330000 3.301...e-06 | org-element-macro-successor 876 = 0.0053859999 6.148...e-06 | org-get-category 1752 = 0.0051480000 2.938...e-06 | org-element-link-parser 63 = 0.0046710000 7.414...e-05 | org-element-inline-babel-call-successor 942 = 0.0045489999 4.829...e-06 | org-element-statistics-cookie-successor 922 = 0.0031339999 3.399...e-06 | org-refresh-category-properties 10 = 0.0029679999 0.0002967999 | org-element-property 5073 = 0.0028890000 5.694...e-07 | org-skip-whitespace 891 = 0.0027629999 3.101...e-06 | org-element-radio-target-successor 876 = 0.0026729999 3.051...e-06 | org-outline-level 876 = 0.0018010000 2.055...e-06 | org-element-time-stamp-parser 93 = 0.0016429999 1.766...e-05 | orgntf-make-todo 876 = 0.0015790000 1.802...e-06 | org-agenda-files 1 = 0.001418 0.001418 | org-link-unescape 59 = 0.001049 1.777...e-05 | org-element-type 1752 = 0.0009170000 5.234...e-07 | org-reduced-level 876 = 0.0006700000 7.648...e-07 | org-link-expand-abbrev 59 = 0.0004410000 7.474...e-06 | org-link-unescape-compound 23 = 0.0003170000 1.378...e-05 | org-element-contents 891 = 0.0002970000 3.333...e-07 | org-trim 53 = 0.000235 4.433...e-06 | org-element-statistics-cookie-parser 46 = 0.0001809999 3.934...e-06 | org-float-time 2 = 0.000103 5.15e-05 | org-element-subscript-parser 7 = 6.3e-05 9e-06 | org-char-to-string 23 = 1.800...e-05 7.826...e-07 | org-no-properties 11 = 1.6e-05 1.454...e-06 `---- So orgntf-todo-list takes the lion's share of the time but most of it is the 15 calls to org-element-parse-buffer (I have 15 files in my org-agenda-files list). BTW, I think the first line of the profile must be a remnant from before, although I did do an elp-reset-all. Nick