[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [O] notifications for todo items
From: |
Nick Dokos |
Subject: |
Re: [O] notifications for todo items |
Date: |
Sun, 26 Feb 2012 00:04:59 -0500 |
Peter Münster <address@hidden> wrote:
> On Sat, Feb 25 2012, Nick Dokos wrote:
>
> > 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 one
> > that's running emacs, so emacs stops responding for those three or four
> > seconds. I have disabled org-notify for now.
>
> How many lines do you have in your org-files?
> (I've about 200 and execution time is about 100ms.)
>
> I call now "(org-element-parse-buffer 'heading)", I hope it's faster for
> you. Is it faster, when the file is byte-compiled?
>
> 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.
>
> 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'.
>
> 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
- [O] notifications for todo items, Peter Münster, 2012/02/22
- Re: [O] notifications for todo items, Nick Dokos, 2012/02/22
- Re: [O] notifications for todo items, Peter Münster, 2012/02/23
- Re: [O] notifications for todo items, Nick Dokos, 2012/02/23
- Re: [O] notifications for todo items, Nick Dokos, 2012/02/24
- Re: [O] notifications for todo items, Peter Münster, 2012/02/25
- Re: [O] notifications for todo items, Nick Dokos, 2012/02/25
- Re: [O] notifications for todo items,
Nick Dokos <=
- [O] optimisation of org-notify (was: notifications for todo items), Peter Münster, 2012/02/26
- Re: [O] notifications for todo items, Nicolas Goaziou, 2012/02/26
- Re: [O] notifications for todo items, Peter Münster, 2012/02/26