2012-09-02 6 views
8

Eclipse führt sucht über ein großes Projekt für alle Übereinstimmungen mit einer Phrase (auch eine Regexp-Phrase) überraschend schnell.Wie Eclipse eine so schnelle Suche nach Treffern auf einen Ausdruck/regexp

Verwenden sie intern java.util.regex?
Ich gehe davon aus, dass sie nicht mit einer Suchmaschine indexieren, da ihre Suche dafür zu langsam ist, aber es gibt eine gewisse Verzögerung beim allerersten Mal nach dem Start von Eclipse.

+0

Ich denke, sie einige Indexer, deren Indizes verwenden, tun in .metadata/.plugins/org.eclipse.jdt.core – Vikdor

+0

gespeichert sind, aber der Indexer würde nicht fare zu gut mit der allgemeinen Regex-Suche, die in Eclipse auch ziemlich schnell scheint. –

+6

Eclipse hat die Leistung von Aufgaben, die mit der Code-Suche zusammenhängen, wie das Suchen von Referenzen, das Erstellen einer Typhierarchie und sogar das Vervollständigen von Code dramatisch verbessert. Dies ist auf ein neues Design zurückzuführen, das von nWire inspiriert wurde und die h2-Datenbank-Engine als persistenten Speicher für diese Daten verwendet. –

Antwort

1

Eclipse Helios (3.6) enthält eine verbesserte Version von Eclipse PDT, beschriftet 2.2. Es ist auch im aktuellen Zend Studio enthalten (7.1 und oben). Neben anderen Verbesserungen wurde die Performance von Code-Lookup-bezogenen Aufgaben wie das Suchen von Referenzen, , die eine Typhierarchie und sogar Code-Vervollständigung erstellen, erheblich verbessert . Dies ist auf ein neues Design zurückzuführen, das von nWire inspiriert wurde und die h2-Datenbank-Engine als persistenten Speicher für diese Daten verwendet.

Die h2-Datenbank ist eine Java-native Hochleistung Datenbank-Engine, die als Nachfolger der weit verbreiteten HSQLDB entwickelt wurde. Es ist Open Source und frei zu verwenden. nWire verwendet h2 seit seinen frühen Tagen.

Quelle: http://www.nwiresoftware.com/blogs/nwire/2010/09/five-tips-speeding-eclipse-pdt-and-nwire

Kurz gesagt, es sieht aus wie Sie diese Verbesserungen sind zu sehen, weil Eclipse-den Motor Datenbank nutzt.

Dann, wenn Sie ein wenig tiefer graben, hier ist ein quick sampling if the H2 source code; es sieht in der Tat, wie sie java.util.regex sind die Nutzung:

20 import java.util.regex.Matcher; 
21 import java.util.regex.Pattern; 
Verwandte Themen