[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[O] Fwd: slow capture templates
From: |
jamil egdemir |
Subject: |
[O] Fwd: slow capture templates |
Date: |
Thu, 22 May 2014 17:25:45 -0400 |
Bastien,
My apologies. I should have been more explicit on the installation.
I followed the instructions at
http://orgmode.org/manual/Installation.html
which included the 'make autoloads' where make in this case is
actually GNU make pulled down from their packages as opposed to the
OpenBSD make.
Using M-x org-version RET I get:
Org-mode version 8.2.6 (release_8.2.6-1 @
/home/jegdemir/share/emacs/24.4.50/lisp/org/)
and so it appears the checked out org is being loaded.
In an attempt to follow you suggestion, I fired up a few calls to
x-get-selection in my *scratch* but didn't find anything exciting:
;; let's try this with UTF8_STRING:
(x-get-selection nil 'UTF8_STRING)#("(x-get-selection value
'UTF8_STRING)" 0 35 (fontified nil) 35 36 (fontified nil
rear-nonsticky t))
(x-get-selection 'PRIMARY 'UTF8_STRING)##("rear" 0 4 (fontified t))
(x-get-selection 'SECONDARY 'UTF8_STRING)nil
(x-get-selection 'CLIPBOARD 'UTF8_STRING)#("resume" 0 6
(foreign-selection UTF8_STRING))
;; and with COMPOUND_TEXT:
(x-get-selection nil 'COMPOUND_TEXT)#("immediate" 0 9
(foreign-selection COMPOUND_TEXT))
(x-get-selection 'PRIMARY 'COMPOUND_TEXT)#("immediate" 0 9
(foreign-selection COMPOUND_TEXT))
(x-get-selection 'SECONDARY 'COMPOUND_TEXT)nil
(x-get-selection 'CLIPBOARD 'COMPOUND_TEXT)#("#(\"resume\" 0 6
(foreign-selection COMPOUND_TEXT))" 0 2 (fontified t) 2 10 (fontified
t face font-lock-string-face) 10 34 (fontified t) 34 47 (fontified t)
47 49 (fontified t))
I was hoping this would expose something since the two function calls
in org-eventually boil down to x-get-selection (I think) but no dice.
I also tried 'STRING and 'TEXT as arguments in the x-get-selection...
results were the same and execution time was snappy.
I also tried the following:
- close and restart emacs
- switched to *scratch* buffer
- instrumented X (along with org) by calling M-x
elp-instrument-package RET org RET and M-x elp-instrument-package RET
x RET
- executed (org-capture) in scratch with C-x C-e with point at the end
of the form
The resulting profile from elp immediately after last step:
org-get-x-clipboard 6
115.30243587 19.217072645
org-get-x-clipboard-compat 6
115.30235814 19.217059690
x-get-selection 24
115.30194600 4.8042477502
x-get-selection-internal 24
115.30104917 4.8042103823
org-clock-in 1
1.162223352 1.162223352
org-resolve-clocks 1
1.158297155 1.158297155
org-find-open-clocks 3
1.1580858859 0.3860286286
org-indent-add-properties 16
0.420800437 0.0263000273
org-indent-initialize-agent 3
0.4196886359 0.139896212
org-indent-initialize-buffer 2
0.4195824059 0.2097912029
org-at-item-p 3131
0.2143426759 6.845...e-05
org-list-in-valid-context-p 329
0.1737325780 0.0005280625
org-in-block-p 329
0.1715975809 0.0005215731
org-between-regexps-p 2619
0.1176125040 4.490...e-05
org-get-indentation 2814
0.0492611860 1.750...e-05
org-mode 3
0.041698319 0.0138994396
and after looking at the source for x-get-selection you find that the
first thing it does is call x-get-selection-internal with appears to
map to something in xselect.c. This happens inside select.el.gz...
Looking at the definitions of the capture templates I'm using I'm not
sure if I understand why the call is being made in the first place if
the capture template does not contain %x. Not that I think this would
solve my deeper problem but it does seem like a good idea to check the
template before pulling the clipboard contents as a matter of course.
In any case it seems unintentional to me that using a capture template
should induce 6 calls to org-get-x-clipboard and 24 calls to
x-get-selection.
BTW, Thanks for the help B.
-jamil