emacs-orgmode
[Top][All Lists]
Advanced

[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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]