estoy jugando un poco con study, una característica Perl para examinar una cadena para hacer expresiones regulares posteriores potencialmente mucho más rápida:¿Qué situaciones se benefician del estudio de Perl?
while(<>) {
study;
$count++ if /PATTERN/;
$count++ if /OTHER/;
$count++ if /PATTERN2/;
}
no hay mucho decir de qué situaciones se beneficiarán de esta. Algunas cosas que usted puede hacer surgir de the docs:
- patrones con cadenas constantes
- Múltiples patrones
- cadenas más cortas de destino podría ser mejor (toma menos tiempo para estudiar)
estoy Buscando casos concretos en los que no solo puedo demostrar una gran ventaja, sino también casos que puedo modificar ligeramente para perder esa ventaja. Una de las advertencias en the docs es que debe comparar casos individuales. Quiero encontrar algunos de los casos de borde donde una pequeña diferencia en una cuerda (o patrón) hace una gran diferencia en el rendimiento.
Si no ha usado study, no responda. Prefiero tener respuestas correctas bien formadas en lugar de conjeturas rápidas. No hay urgencia aquí, y esto no demora ningún trabajo.
Y, como beneficio adicional, he estado jugando con una herramienta de evaluación comparativa que compara dos carreras de NYTProf, que prefiero usar que la herramienta habitual de evaluación comparativa. Si se me ocurre una forma de automatizar eso, lo compartiré también.
I * have * used 'study', si yo * debería * haber usado' study' es probablemente parte del problema al que te enfrentas. – Axeman
¿Cuáles fueron los resultados de su investigación? –
No tengo resultados. No me interesaba lo suficiente como para resolver el código, especialmente porque solo funciona para cadenas ASCII. –