[Top][All Lists]

[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 <address@hidden> 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
    ( and put to test in
    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 (
but---alas---handles only the search for symbols, nothing fancy like cscope's
search for global definitions etc.

Hope that helps.


Contact information and PGP key at

You will pay for your sins. If you have already paid, please
disregard this message.

reply via email to

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