On Dec 19, 2008, at 12:57 AM, Samuel Wales wrote:

Hi Carsten,

On Mon, Dec 15, 2008 at 02:36, Carsten Dominik <dominik@science.uva.nl> wrote:
1. Compile Org!  Are you using byte-compiled files?
  In a case like this, the differences may be significant.

Always!  :)

4. Create the list of headings with full outline path
  in a single path of the file, similar to the tags matcher.
  This would avoid the N^2 operation I discussed above.

Single pass?  Very nice.

There is also a new variable `org-goto-max-level' with
a default of 5.

Excellent.  Might also be useful to unify the syntax for
org-goto, org-refile, remember.


Hi Samuel,

could you expand a bit on what you meant here?

- Carsten



This should be *a lot* faster now.  Thanks for the report!

Almost instantaneous in many cases.

However, when I do org-refile as full path (not basenames),
it sometimes takes 45 seconds.

I haven't narrowed it down yet.  Emacs just freezes.

Every character I type from that point on takes another 45
seconds or so.  Deletes also take that long until I get back
to the place where it was fast.  At that point it is fast
again.

The difference from before is that before, it occurred
before the minibuffer showed the candidates, while now it
occurs in the middle of entering the selection string.

Discontiguity might something to do with it -- sometimes it
happens when the character typed is different from the next
char in the target.  Maybe the candidate list needs lots of
searching in that case.  Maybe it is starting from the
beginning to match against the path?

I have not noticed this happening when I use basenames in
org-refile ido.  This leads me to conjecture that it might
be the size of the full paths.  Maybe too much stuff for the
ido flex matcher to consider.  uniquify-style disambiguation
might help by reducing the number of characters.

It might or might not have something to do with typing a
space that exists next in the target -- or not typing the
same.  Another possible hint is that sometimes, typing a
space inserts a slash.  Not sure why.

As I said, I have not narrowed down the exact cases.  If you
have a priori ideas, please let me know and I will try them.

Thank you very much.

--
Myalgic encephalomyelitis denialists are knowingly causing further
suffering and death by opposing biomedical research on this serious
infectious disease.  Do you care about the world?
http://www.meactionuk.org.uk/What_Is_ME_What_Is_CFS.htm