Domanda

Sto considerando Smarty come la mia soluzione di template web app, e ora sono interessati con la sua performance con PHP.

Il sito di Smarty dice che dovrebbe essere lo stesso, però, non ero in grado di trovare qualcuno a fare vera e propria analisi comparativa per dimostrare il diritto dichiarazione o sbagliato.

Qualcuno fare un po 'di benchmarking di Smarty vs PHP pianura? O forse venire attraverso alcune risorse su tali prove?

Grazie

È stato utile?

Soluzione

Perché, alla fine, Smarty compila e memorizza nella cache i file template per PHP-codice nativo, non v'è infatti alcuna differenza di prestazioni teoriche. Naturalmente ci sarà sempre qualche perdita di prestazioni dovuta al pezzo di Smarty-codice che deve essere interpretato ogni volta.

Altri suggerimenti

Si potrebbe anche voler prendere in una nuova libreria di modelli che è simile a Smarty chiamato Dwoo

Appena trovato questo molto semplice punto di riferimento -. propably non molto significativo

Ecco un'altra soluzione template XSLT qui sono i miei punti di riferimento per una delle pagine mi sono convertito (sua una semplice pagina):

// 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

La sua non è per tutti, ma se le prestazioni è la vostra preoccupazione principale:)

In cima a che si consenta al cliente di memorizzare nella cache il modello.

Ecco un esempio di quello che sto facendo (questo è uno dei miei siti): http://pixao.com

ed ecco un altro esempio di esso su un sito scala più ampia: http://worldofwarcraft.com

Finora ho ancora incontrato nessuno show stopper

Ecco un punto di riferimento template engine che mette alla prova PHP vs Smarty e molti altri motori di template http://www.raintpl.com/PHP-Template-Engines-Speed-Test/

  • Per l'assegnazione Twig è il più veloce, compilare il modello HTML a una classe, quindi è anche più veloce in esecuzione più che il PHP include! IMHO è pesante (molti file) e complicare, ma è molto veloce!

  • Per loop il più veloce è il PHP includono, e subito dopo c'è pioggia che è molto facile, piccole (1 file) e veloce.

Smarty genera il codice PHP per tutti i suoi file di modello quando sono usati prima, a patto di avere lo configurato correttamente, e li usa quando possibile, invece di analizzare di nuovo i modelli.

L'ho usato per un po 'ed è stato abbastanza veloce, ma alla fine ho scambiato fuori per semplici file PHP perché era un po' limitante (troppi PHP4-ismi).

Smarty per sé è piuttosto una grande biblioteca ... Se si ha intenzione di utilizzare Smarty, vi suggerisco di utilizzare APC per memorizzare nella cache la versione compilata .. Sarà compensare il piuttosto grande dimensioni della libreria Smarty ...

Dipende da come si usa Smarty perché il flusso delle tue pagine possono Modifica

Classic flusso PHP pianura:

  • Output
  • manico $ _REQUEST dati
  • Output
  • query di database maniglia
  • Output
  • manico $ _REQUEST dati
  • Output
  • ...

flusso Classic Smarty:

  • gestire tutti i dati $ _REQUEST
  • gestire tutte le query di database
  • Output tutti

Se pianura PHP ha preso 1,0 sec per questa pagina pagina Smarty prende anche 1,0 sec. MA se assumiamo che tutti i database e $ _REQUEST handeling prende 0,7 secondi. La pianura PHP inizia uscita direttamente mentre la versione Smarty inizia outputing dopo 0,7 secondi. Perciò il browser può iniziare a scaricare i fogli di stile e le immagini più veloci. Nessuna uscita significa anche il pulsante "Stop" non ha alcun effetto.

Tuttavia, in Smarty è possibile chiamare funzioni e metodi all'interno del modello. Ritardare la parte lenta al punto in cui i dati sono necessari.

C'è un calo nel rimontaggio per Smarty chiamato Modello Lite che è molto più leggero rispetto al dimensione del file di libreria. Detto questo, ho usato l'originale Smarty in alcune situazioni estremamente elevate di carico senza la necessità di scambiare in questa libreria.

Sulla base delle mie esperienze e punti di riferimento informali, Smarty non di per sé causa alcun importanti riduzioni di prestazioni. Tuttavia, quando si arriva a scrivere plug-in personalizzati, le cose vanno in discesa.

Un modello di Smarty è compilato e memorizzato nella cache come PHP, ma un plugin personalizzato viene sempre caricato ed eseguito in fase di esecuzione ed è sempre più lento rispetto esegue lo stesso codice in un file PHP pianura vecchio. Tu non stai andando a notare questo troppo con un plugin di formattazione stringa personalizzata, ma sicuramente avrete vederlo quando fa le query di database in un plugin.

Nel complesso, mi raccomando Smarty. Ottenere la visualizzazione fuori dal PHP ha reso il nostro codice in modo molto più leggibile e gestibile. Devi solo per assicurarsi che si sta attenti a ciò che si mette in plugins.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top