[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: OT:cscope/tags
From: |
Thorsten Bonow |
Subject: |
Re: OT:cscope/tags |
Date: |
Mon, 04 Dec 2006 21:37:56 +0100 |
User-agent: |
Gnus/5.110006 (No Gnus v0.6) XEmacs/21.4.19 (linux) |
>>>>> "Toto" == Thorsten Bonow <thorsten.bonow@post.rwth-aachen.de> writes:
[...]
Toto> So I think what's wrong with xscope.el is the "do I need to update the
Toto> database" algorithm.
I made some additional tests which led to confusing results. Nevertheless I
think they are useful if somebody wants to tackle the original problem of
speeding up cscope for large projects as the linux kernel source.
1.) Trying to add the "-q" option to xcscope in my opinion is a step in the
wrong direction: First of all I didn't manage to patch
xcscope/cscope-indexer without performance going to hell, but then I tried
using cscope *without* Emacs/xcscope and realised the following: If the
database is build with the "-q" switch, after loading it cscope searches
much faster in it compared to a database created without it, *but* exiting
and restarting cscope would take much, much longer. Since xcscope.el uses
cscope with the "one shot" option (-L), it has to restart and load the
database for every search request: That is the reason why performance went
down so badly.
2.) Trying to keep cscope running all the time (e.g. with the "-l" option) as
discussed in the EmacsWiki
(http://www.emacswiki.org/cgi-bin/wiki/CScopeAndEmacs) and put to test in
bscope.el
(http://groups.google.de/group/gnu.emacs.sources/browse_thread/thread/6e087f36c31336b8/92f00c90361f07da?hl=en)
has the major drawback that the database is not updated between search
requests. But in this case I have to compare search times to xcscope's
behaviour when the `cscope-do-not-update-database' variable is set to a
non-nil value (you can do this manually, via customise or in the "options"
sub-menu of the xcscope menu): On my Athlon 700 box, searching for the
global definition of a symbol took less than 2 seconds---in my opinion an
acceptable time which should be even smaller on a more modern system.
So, the way I see it your best bet is to disable automatic updating of the
database and do it manually in your coffee breaks ;-)
GNU global/gtags supports incremental updates, is sporting a nice Emacs
interface with xgtags.el (http://home.tiscali.de/mgidde/source/xgtags.el)
but---alas---handles only the search for symbols, nothing fancy like cscope's
search for global definitions etc.
Hope that helps.
Toto
--
Contact information and PGP key at
http://www-users.rwth-aachen.de/thorsten.bonow
You will pay for your sins. If you have already paid, please
disregard this message.
Re: OT:cscope/tags, Perry Smith, 2006/12/04
Message not available
- Re: OT:cscope/tags, Hadron Quark, 2006/12/05
- Re: OT:cscope/tags, Perry Smith, 2006/12/05
- Message not available
- Re: OT:cscope/tags, Hadron Quark, 2006/12/05
- Re: OT:cscope/tags, Perry Smith, 2006/12/05
- Message not available
- Re: OT:cscope/tags, Hadron Quark, 2006/12/05
- Re: OT:cscope/tags, Perry Smith, 2006/12/05