help-gnu-emacs
[Top][All Lists]
Advanced

[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.


reply via email to

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