¿Cómo puedo mejorar el rendimiento de Moose en procesos CGI no persistentes?

Alce Es un marco de objeto fantástico. El problema es que, junto con sus dependencias, esmuy grande. Nuestro perfil indica que en nuestra plataforma, simplemente cargar Moose incurrirá en una sobrecarga de 5 a 6 segundos en los scripts de aplicaciones CGI no persistentes. Eso no es aceptable para estas aplicaciones únicas.

Por el contrario, cuando utilizamos un sistema de proceso persistente (como FCGI), esta sobrecarga de inicio se elimina (o más bien, solo se incurre una vez) y todo está bien. El problema que tenemos es que no podemos garantizar que todo nuestro código siempre se ejecutará en un proceso persistente.

Investigamos utilizandoRatón como una función limitada de reemplazo directo para Moose, pero como resulta (como se menciona enesta respuesta) Esa no es una opción viable. Cualquier biblioteca que escribamos para trabajar con Moose dejará de funcionar con Mouse de manera sutil pero importante. Y nosotrosDe Verdad no quiera bifurcar todos nuestros módulos para que podamos admitir tanto a Moose en un entorno persistente como a Mouse para CGI "vainilla".

Por eso, tenemos las siguientes opciones:

Bifurca nuestros módulos internos. para trabajar con Moose o Mouse, según corresponda. (¡Puaj!)Solo desarrollamos nuestros módulos para FCGI / Moose.. Ya no soporta "vainilla" CGI. Si tenemos que escribir scripts que no son persistentes, no podrán aprovechar nuestros módulos internos.No utilices Moose o Mouse, pero algún otro marco de objeto.

¿Qué opción es la mejor? Estamos inclinándonos hacia el 2 en este momento, y lo vamos a absorber si tenemos que hacer que algo funcione como un CGI de vainilla. ¿Qué hay de otros marcos? ¿Hay algo más ligero que deberíamos estar viendo?

Respuestas a la pregunta(6)

Su respuesta a la pregunta