2012-09-02 18 views
8

Eclipse busca a través de un proyecto grande para todas las coincidencias una frase (incluso una frase regular) sorprendentemente rápido.¿Cómo ejecuta Eclipse una búsqueda tan rápida de éxitos en una frase/expresión regular?

¿Usan java.util.regex internamente?
Supongo que no indexan con un motor de búsqueda, porque sus búsquedas son demasiado lentas para eso, sin embargo, hay un poco de retraso la primera vez que hace una búsqueda después de lanzar el eclipse.

+0

creo que hacen uso de algunos indexador cuyos índices se almacenan en .metadata/.plugins/org.eclipse.jdt.core – Vikdor

+0

Pero el indexador no haría tarifa muy bien con la búsqueda de expresiones regulares generales, que también parece bastante rápido en eclipse. –

+6

eclipse mejoró dramáticamente el rendimiento de las tareas relacionadas con la búsqueda de código, como buscar referencias, crear una jerarquía de tipos e incluso completar el código. Esto se debe a un nuevo diseño, inspirado en nWire, que utiliza el motor de base de datos h2 como almacenamiento persistente para estos datos. –

Respuesta

1

Eclipse Helios (3.6) incluye una versión mejorada de Eclipse PDT, con la etiqueta 2.2. También se incluye en el Zend Studio actual (7.1 y arriba). Entre otras mejoras, mejoró drásticamente el rendimiento de las tareas relacionadas con la búsqueda de códigos, como buscar referencias, , creando una jerarquía de tipos e incluso la finalización del código. Esto se debe a un nuevo diseño , inspirado en nWire, que utiliza el motor de base de datos h2 como almacenamiento persistente para estos datos.

La base de datos h2 es un motor de base de datos , de alto rendimiento y bajo perfil nativo de Java, creado como un sucesor del ampliamente utilizado HSQLDB. Es es de código abierto y de uso gratuito. nWire usa h2 desde sus comienzos.

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

En resumen, parece que se está viendo estas mejoras porque Eclipse utiliza el motor de base de datos .

Luego, si profundiza un poco más, aquí hay un quick sampling if the H2 source code; sí que parece como si estuvieran aprovechando java.util.regex:

20 import java.util.regex.Matcher; 
21 import java.util.regex.Pattern; 
Cuestiones relacionadas