Thursday, February 5, 2015

Re: taglist() performance

Christian Brabandt wrote
> Could you provide a) the tagfile and b) the two functions to search for
> a specific tag
> and c) the name of the tag, that makes it so slow?
>
> I'd like to check, what makes taglist() so slow.

Hi Christian,

I'm glad you're taking this on. I've attached the script
<http://vim.1045645.n5.nabble.com/file/n5723929/inherits.vim> . It has two
main functions, Inherits() and InheritsOld(). InheritsOld() uses taglist(),
Inherits() uses readfile() and parses the tag records itself via a helper
function ParseCtagsRec().

The best way to switch between them is to change the command, also named
Inherits, at the bottom of the file to call either Inherits() or
InheritsOld().

Inherits take the name of a class (you can also use a regex, but lets not
complicate things) and finds all classes that inherit from the class
directly. For our purposes it doesn't really matter if it's a real class,
it will search the entire tags file anyway so that you'll see the problem
whether or not the command succeeds. However, in order to have any chance
of success, the tags file must be an Exuberant Ctags file build with 'i' in
the --fields argument. I use --fields=ilmS.

Unfortunately I cannot give you the tags file without getting special
permission for security policy reasons. But I think that even a moderate
tags file like I suppose would be generated from the VIM source code would
show the problem. If not, we can discuss other possibilities.

Regards and good luck,
Codie




--
View this message in context: http://vim.1045645.n5.nabble.com/taglist-performance-tp1149739p5723929.html
Sent from the Vim - General mailing list archive at Nabble.com.

--
--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

---
You received this message because you are subscribed to the Google Groups "vim_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email to vim_use+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

No comments: