Optimización del rendimiento de Python: aumentar el caché de compilación de expresiones regulares
En la biblioteca re de Python 3, la función privada re. _compile () se llama a la función de compilación de expresiones regulares re.compile (), pero el cálculo de la compilación se completa básicamente con sre_compile.compile () y la expresión compilada se almacena en caché en re. _compile(), codifica el tamaño de la caché a 512 usando _MAXCACHE. El siguiente es el código fuente de re. _compile(), tomado de:/python/cpython/blob/3.5/lib/re.py (sin cambios en 3.6 y 3.7).
En algunos escenarios de aplicaciones a gran escala, el caché de 512 es obviamente demasiado pequeño. Para deshacernos de este cuello de botella sin tocar el código fuente de cpython, podemos reescribir re. _compile() usted mismo, lo que permite organizar fácilmente el tamaño de caché personalizado (max_regex_cache) hasta 10000. Hay muchas declaraciones en la función original que no sé para qué se usan, por lo que siempre es correcto sacar una primicia.
Método de llamada:
Una mayor optimización es convertir esta clase en un Singleton (probablemente escribiré un artículo especial en el futuro) y disfrutarla en múltiples módulos.