PHPBlog.it

Array contro ArrayIterator: la sfida

Seguendo la mailing list di php.net ho trovato uno spunto interessante per questo post. L’argomento del contendere è rappresentato dalla prestazioni offerte dal foreach (costrutto del core di PHP) rispetto a quelle di SPL ArrayIterator. Lo studio eseguito da Nathan Nobbe mi ricorda i tempi universitari quando si studiavano gli algoritmi di ordinamento nel corso di Algoritmi e Strutture Dati: l’autore dei test ha preparato degli array ed eseguito delle misurazioni iterando su di essi con i vari metodi in esame.

I test effettuati riguardano due aspetti: velocità (quindi tempo) e utilizzo della memoria. I risultati ottenuti organizzati in efficaci grafici rendono semplice la lettura delle risposte fornite dai numeri: il foreach “classico” è di gran lunga l’iteratore più performante, non per niente è inserito nel core di PHP.

E’ quindi consigliabile studiare bene ciò che pensiamo di utilizzare per le nostre applicazioni prima di farlo veramente per capire se realmente ne abbiamo bisogno oppure no.

E voi avete fatto qualche studio particolare riguardante performance e comportamenti particolari dei costrutti o di librerie particolari? Volete condividerlo con gli altri sviluppatori? PHP5blog.it è pronto ad aiutarvi pubblicando il vostro lavoro!

Commenti

  • upnews.it scrive:

    Array contro ArrayIterator: la sfida…

    Seguendo la mailing list di php.net ho trovato uno spunto interessante per questo post. L’argomento del contendere è rappresentato dalla prestazioni offerte dal foreach (costrutto del core di PHP) rispetto a quelle di SPL ArrayIterator. Lo studio es…

  • Questo articolo è stato segnalato su ZicZac.it….

  • diggita.it scrive:

    Array contro ArrayIterator: la sfida…

    Seguendo la mailing list di php.net ho trovato uno spunto interessante per questo post. L’argomento del contendere è rappresentato dalla prestazioni offerte dal foreach (costrutto del core di PHP) rispetto a quelle di SPL ArrayIterator. Lo studio es…

  • Lascia un Commento

    *