• Publicidad

Expresiones regulares en memoria

Así que programas sin strict y las expresiones regulares son otro modo de hablar. Aquí encontrarás respuestas de nivel avanzado, no recomendable para los débiles de corazón.

Expresiones regulares en memoria

Notapor mvaras » 2009-06-22 11:14 @510

Hola,

Quisiera saber si existe la posibilidad de compilar las expresiones regulares y almacenarlas en un archivo, de modo que cada vez que ejecute un script pueda subir dicho archivo con las expresiones ya compiladas a memoria. Todo lo anterior para aumentar la velocidad de match que realiza Perl.

Saludos.
mvaras
Perlero nuevo
Perlero nuevo
 
Mensajes: 2
Registrado: 2009-06-22 11:07 @504

Publicidad

Notapor explorer » 2009-06-22 12:17 @554

Bienvenido a los foros de Perl en Español, mvaras.

Yo creo que no se puede hacer... ni en el perlfaq6 ni en el perlretut se comenta la posibilidad de salvar a disco la interpretación de las expresiones regulares.

Solo veo que hacen referencia a la opción '/o'. Y cuando se refieren a almacenamiento, solo es dentro de estructuras que existen en el momento de ejecución del programa (ver sección Compiling and saving regular expressions dentro del perlretut).

Tu pretensión es muy parecida a la de la familia de módulos Regexp::Common. Y viendo el código, se ve que no realizan ese proceso de lectura, si no el de interpretación de las expresiones regulares.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor explorer » 2009-06-22 12:44 @572

Humm... sería interesante hacer la prueba de guardar en un arreglo las expresiones regulares interpretadas por qr(), y luego hacer un store() y luego un retrieve(), para ver si el contenido es recreado... como se comenta en perlfaq4, en la sección How do I keep persistent data across program calls?.

Yo creo que no es posible...

Voy a probar...
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor explorer » 2009-06-22 13:15 @593

Pues no... no me sale...

Habría una forma, que sería que el proceso no terminase nunca: usar Perl persistente.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor mvaras » 2009-06-22 13:15 @594

Muchas gracias,

Seguiré investigando, si encuentro respuesta te posteo la solución.

Saludos
mvaras
Perlero nuevo
Perlero nuevo
 
Mensajes: 2
Registrado: 2009-06-22 11:07 @504

Notapor Jenda » 2009-06-27 07:10 @340

Pues ... de verdad, ¿sabes si el script es lento por culpa de la compilación de los regexps? ¿Sí? ¿Sabes cuánto tiempo el script queda compilándolos?

Me parece que malgastas tiempo con algo minúsculo.

Profile el script para saber dónde queda la mayoría del tiempo y solo trata de optimizar eso. La compilación de expresiones regulares no tarda mucho y si sólo compilas cada expresión una vez, no hay hace diferencia.
-------------------------------------------------------
- Estoy aquí para practicar español. Si te ayudó mi respuesta ayudame con un mensaje privado sobre mis faltas por favor. Seguramente habrá muchas :-)
Jenda
Perlero nuevo
Perlero nuevo
 
Mensajes: 132
Registrado: 2007-10-29 06:31 @313
Ubicación: Praga, Republica Checa

Notapor netsoul » 2009-06-29 23:37 @025

Yo creo que, desde mi punto de vista ignorante, si hubiera tal posibilidad, ya hubiera existido. Y todos ya hubieran optado por ese método.
With Perl
Imagination is more important than knowledge. Albert Einstein.
netsoul
Perlero nuevo
Perlero nuevo
 
Mensajes: 150
Registrado: 2008-05-04 01:11 @091


Volver a Avanzado

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados