He escrito un analizador de Python puro recursivo práctico para un formato de archivo (ARFF) que usamos en una conferencia. Ahora, ejecutar mi presentación de ejercicios es terriblemente lento. Resulta que, con mucho, se gasta más tiempo en mi analizador sintáctico. Está consumiendo mucho tiempo de CPU, el HD no es el cuello de botella.escribiendo un analizador rápido en python
Me pregunto qué formas efectivas hay para escribir un analizador en python? Prefiero no reescribirlo en C. Intenté usar jython, ¡pero eso disminuyó mucho el rendimiento! Los archivos que analizo son parcialmente enormes (> 150 MB) con líneas muy largas.
Mi analizador actual solo necesita una mirada anticipada de un caracter. Publicaría la fuente aquí, pero no sé si es una buena idea. Después de todo el plazo de presentación aún no ha terminado. Pero luego, el enfoque en este ejercicio no es el analizador sintáctico. Puedes elegir el idioma que quieras usar y ya hay un analizador para Java.
Nota: Tengo un sistema x86_64 así que psyco (y parece también PyPy) no es una opción.
Actualización: Ahora he subido mi analizador/escritor al bitbucket.
¿Ha perfilado su analizador? Lo más probable es que sea solo un cuello de botella que lo contenga todo. –
Sin un ejemplo de código, es imposible dar un consejo decente. Podría estar utilizando una técnica de sonido con un defecto importante, o podría ser necesario volver a trabajar todo su enfoque, no tenemos forma de saberlo. – mikerobi
¿Has probado usar psyco con él? –