2008-12-13 18 views
8

Considero que Smarty es mi solución de plantillas de aplicaciones web, y ahora me preocupa su rendimiento frente a PHP simple.Smarty benchmark, ¿alguien?

El sitio de Smarty dice que debería ser el mismo, sin embargo, no pude encontrar a nadie que realizara un benchmarking real para probar que la afirmación era correcta o incorrecta.

¿Alguien hizo alguna evaluación comparativa de Smarty vs plain PHP? ¿O tal vez encontrar algunos recursos en tales pruebas?

Gracias

+0

Podría estar equivocado, pero Smarty es 'Plain Php', es solo un motor de plantillas escrito en php. Parece poco probable que pueda escribir un motor de plantillas que sea más rápido que smarty – andrew

Respuesta

14

Porque, al final, Smarty compila y almacena en caché los archivos de plantillas en código PHP nativo, de hecho no hay diferencia de rendimiento teórico. Por supuesto, siempre habrá alguna pérdida de rendimiento debido a la cantidad de código Smarty que debe interpretarse cada vez.

3

acaba de encontrar this muy simple referencia - además probablemente no es muy significativa.

+1

El dominio ya no está en línea, pero aquí hay un buen reemplazo http://cedric.emisfr.info/en/2010/03/25/ smarty-2-6-3-0beta-and-dwoo-performances/ – TravisO

1

Smarty genera código PHP para todos sus archivos de plantilla cuando se usan por primera vez, siempre que lo haya configurado correctamente, y los usa cuando es posible en lugar de analizar las plantillas nuevamente.

Lo usé por un tiempo y fue lo suficientemente rápido, pero al final lo cambié por archivos PHP simples porque era un poco limitante (demasiados PHP4-ismos).

1

Smarty en sí es más bien una gran biblioteca ... Si vas a utilizar Smarty, le sugiero que utilice APC para almacenar en caché la versión compilada .. Se compensará el lugar gran tamaño de la biblioteca de Smarty ...

1

depende de cómo se utiliza Smarty debido a que el flujo de sus páginas puede cambio

clásico llano flujo PHP:

  • salida
  • manija $ _R datos eQuest
  • salida
  • base de datos de controlar las consultas
  • salida
  • Manija $ _REQUEST datos
  • salida
  • ...

clásico Smarty flujo:

  • Mango todos los datos $ _REQUEST
  • manija toda la base de datos de consultas
  • salida todo

Si PHP plano tomó 1.0 segundos para que esta página la página Smarty también toma 1.0 segundos. PERO si suponemos que toda la base de datos y $ _request handeling toma 0.7 segundos. El PHP simple comienza a salir directamente mientras que la versión Smarty comienza a emitir después de 0.7 segundos. Por lo tanto, el navegador puede comenzar a descargar hojas de estilo e imágenes más rápido. Ninguna salida también significa que el botón "Parar" no tiene ningún efecto.

Sin embargo, en Smarty puede llamar a funciones y métodos desde dentro de la plantilla. Retrasando la parte lenta donde se necesitan los datos.

4

Usted también puede tomar en una nueva biblioteca de la plantilla que es similar a Smarty llamados Dwoo

0

Basado en mis propias experiencias y puntos de referencia informales, Smarty por sí misma no causa ningún reducciones importantes de rendimiento. Sin embargo, cuando escribes plugins personalizados, las cosas van cuesta abajo.

Se compila una plantilla Smarty & en caché como PHP, pero un complemento personalizado siempre se carga y ejecuta en tiempo de ejecución y siempre es más lento que ejecutar el mismo código en un archivo PHP simple antiguo. No vas a notar esto demasiado con un complemento de formato de cadena personalizado, pero definitivamente lo verás al hacer consultas de bases de datos en un complemento.

En general, recomiendo Smarty. Sacar la pantalla del PHP ha hecho que nuestro código sea mucho más legible y mantenible. Solo tienes que asegurarte de tener cuidado con lo que colocas en los complementos.

2

aquí es otra XSLT solución de plantillas que aquí están mis puntos de referencia para una de las páginas de mi conversión (es una simple página):

// with smarty (baseline) 
    0.014 seconds 

// with xsl/xslt-clientside 
    0.008 seconds 
    42% decrease in server stress 

// with xsl/xslt-serverside 
// this process would only be done if the users browser doesn't support client-side XSLT 
    0.016 seconds 
    14% increase in server stress 

No es para todos, pero si el rendimiento es su principal preocupación :)

Además de eso, permite que el cliente guarde en caché su plantilla.

He aquí un ejemplo de lo que estoy haciendo (este es uno de mis sitios): http://pixao.com

y aquí es otro ejemplo de que en un sitio de mayor escala: http://worldofwarcraft.com

hasta ahora todavía tengo que ejecutar en cualquier espectáculo tapones

2

Aquí un motor de referencia que pone a prueba la plantilla PHP vs Smarty y muchos más motores de plantilla http://www.raintpl.com/PHP-Template-Engines-Speed-Test/

  • Para la asignación Twig es la más rápida, compila la plantilla html para una clase, por lo que también es más rápido en la ejecución de más de PHP. En mi humilde opinión es pesado (muchos archivos) y complicado, ¡pero es muy rápido!

  • Para bucle, cuanto más rápido se incluye el PHP, y poco después hay lluvia, que es muy fácil, pequeño (1 archivo) y rápido.

+0

Intenta ser un miembro valioso de SO. Su historial de respuestas parece una publicidad flagrante. –

+0

Marcar como spam. –