2009-08-24 11 views
2

Ich benutze cscope in vim, um nach Material in einer großen Codebasis zu suchen. Ich finde die "cs f e" Option zu langsam. Anyway Tipps beschleunigen es. Ich baue meine Cscope-Datenbank mit cscope -bqCscope egrep speedup

+1

Wie groß ist Ihre Codebasis? Wie langsam ist "zu langsam"? Welche Plattform benutzen Sie? Ist Ihr Quellcode auf einem lokalen Dateisystem oder einem Netzwerk-Dateisystem? –

Antwort

1

cscope wird nicht beschleunigen grep und egrep mit Datenbank (fast). Dies liegt daran, dass cscope keinen invertierten Index für einen möglichen Teilstring erstellt und auch keine Regex-Beschleunigungsmethode mit einem bestimmten vorberechneten Index verwendet. Die einzige Beschleunigung ist, dass cscope die Funktion grep/egrep nur für Quelldateien ausführt und dies nur beim Vergleich mit grep regex -r . (das auch die Binärdateien .obj, .exe prüft) beschleunigt wird.

Die Egrep-Funktion kann die cscope-Datenbank nicht verwenden.

Also, verschieben Sie Ihren Code auf lokale fs (aus dem Netzwerk fs), installieren Sie mehr Arbeitsspeicher, deaktivieren Sie das Sortieren über env LC_ALL = C oder LC_ALL = POSIX, deaktivieren Sie atime auf Ihrem fs.

Sie können Ihre fs auch auf SSD oder RAMDISK verschieben.

+0

Danke für die Info. Irgendwie ist opengrok viel schneller für egrep-ähnliche Suchen. Der Code besteht aus ein paar Millionen Codezeilen (hier nur raten, im Grunde möchte ich sagen, ziemlich groß). – kgunjikar

Verwandte Themen