NOTA: ricordatevi che la realizzazione di questi piccoli benchmark, alla fin fine, da la possibilità anche a voi di utilizzare software migliore e più veloce e per chi sa usare il proprio template engine preferito ci vogliono 10 minuti a fare i test
Hola a todos
ho parzialmente sviluppato una piattaforma di misurazione delle performance, ovvero viene lanciato del codice che si occupa di effettuare le operazioni richieste e queste vengono misurate poi e da li vengono generate tabelle riassuntive.
Il codice che ho scritto è abbastanza semplice e flessibile nel contempo. Ovviamente i risultati non sono assoluti e DEVONO, come per ogni benchmark, essere confrontati esclusivamente con gli altri valori dello stesso benchmark (un processore, la memoria, l'occupazione del sistema operativo e tanta altra roba impediscono una comparazione esatta di benchmark eseguiti su macchine diverse ... nel caso si costruisca un sistema di testing ad hoc la cosa è ben diversa)
Chi cerco?
Cerco gente che sappia usare BENE (o abbastanza bene) un dato template engine e sia quindi in grado di scrivere del codice che testa, effettuando una serie di operazioni ben precise (eventualmente poi il codice lo riscrivo per farlo il più possibile simile ad altri).
Cosa fare?
Se siete REALMENTE interessati basta che postiate qua il nome del template engine, in grassetto, dove recuperare i sorgenti, e poi il vs. codice di benchmark con allegato il template che usate per il testing.
Attualmente direi di non scrivere roba troppo complessa onde evitare di perdere tempo inutilmente. Le linee guida sono queste:
- Vanno usati foreach e non while+each+list o while+next+current e cosi via perché gli ultimi due sono molto più "esosi" a livello di risorse di processore
- I template realizzati devono avere uno schema ben preciso che sarà riportato sotto
- I template engine utilizzati dovranno permettere, all'interno dello stesso template, di utilizzare blocchi differenti, nel senso che deve essere possibile visualizzare blocchi di codice html diversi in base a specifiche condizioni
- Il codice DEVE essere commentato
- Deve funzionare con le estensioni standard di PHP (l'unica eccezzione è per xslt)
Ci sono anche dei bonus:
- I template engine che, in qualche modo, danno la possibilità di richiamare funzioni di php o elaborare le variabili avranno un bonus perché semplificano la separazione della visualizzazione dall'elaborazione.
- Un altro bonus e se permette di richiamare funzioni scritte dallo sviluppatori oltre alle funzioni proprie di elaborazione dei dati (il che non vuol dire che dentro il codice del template ci deve stare PER FORZA codice php ma che ad esempio ci sia la possibilità di richiamare funzioni da altri file php) perché permette con estrame semplicità, una situazione del genere, la separazione della visualizzazione dall'elaborazione (infatti nella cartella del tema un file potrebbe comprendere TUTTO il codice che serve per visualizzare specifici contenuti e il template engine, permettendo il richiamo, da la possibilità di non includere questo codice, a proprio, nel codice del sito [che magari essendo un CMS non è cosa buona])
- La cache è un altro punto a favore, se questa però non è essenziale per il corretto funzionamento del template engine ... ovvero se il template engine gira un assoluto schifo senza cache allora non c'è nessun punto bonus
- Un altro bonus ancora è dato, se il precedente punto sulla cache è valido, dal supporto a sistemi di caching delle variabili come memcache, sharedance, apc ed eaccelerator
Struttura del template:
Non ha importanza la dimensione, in byte, del template, l'importante è che all'interno ci stiano:
- Almeno 100 variabili di cui 50 acquisite tramite normali set e altre 50 impostando un array come valore facendole leggere da li nel template (ergo verranno settate dal template engine 51 variabili)
- Ci sia almeno una select con 100 elementi che utilizzi dei "blocchi" che a loro volta contengano dei blocchi condizionali per selezionare o meno delle specifiche voci ... in questo caso il blocco condizionale serve per far comparire o meno la voce selected="selected" nella option della select
Nel caso il template engine lo supporti è possibile fornire anche un secondo template che contenga invece le chiamate a normali funzioni di php: per la precisione dovranno essere settate 40 variabili e, rispettivamente a gruppi di 10, i valori dovranno essere passati alle funzioni di php seguenti ovvero strtouppwer, strtolower, ucwords, ucfirst. Inoltre dovrà essere passato un array di 50 elementi da passare alla funzione usort che come funzione dovrà prendere la ucfirst.
Per chi ha dubbi sulle funzioni di php riportate potete dare un occhio al manuale di php
http://www.php.net/
Il testo con cui impostare TUTTE le variabili deve essere il seguente
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Phasellus sem enim, euismod vel, vulputate et, hendrerit vitae, velit. Fusce rhoncus enim eu neque. In luctus est luctus nisl. Mauris enim. Donec imperdiet. Sed scelerisque, erat a consectetuer sagittis, lacus justo vestibulum sem, vitae vulputate mauris nibh eget mauris. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Curabitur varius laoreet nibh. Vivamus eget lorem. Duis iaculis, magna ac pellentesque mollis, urna metus ornare tellus, sit amet sodales neque nulla nec nisl. Praesent faucibus nisi eu dolor. Vivamus at dolor. Pellentesque fringilla lorem ut odio. Pellentesque semper vestibulum arcu. Phasellus magna.