Inserisci il tuo indirizzo di posta per ricevere i prossimi articoli gratis:
Servizio gestito tramite Feedburner
Continua la lettura
Articoli recenti
- Perché Google Wave non ha funzionato
- Nuovi iPods, iPhone 5, Bumper in nuova versione e iPad mini: da crederci?
- GoogleCar in vacanza Italia
- Google Chrome: 9 comandi nascosti
- iPad per gli studenti universitari: le prove generali questo autunno
- Tre conquiste dell’umanità di cui non godremo
- A Google Java e C++ vanno stretti
- Rails 3.0: Release candidate
- Android 3.0 fa la sua apparizione non ufficiale
- iPhone 4: venerdì disponibile in altri 17 paesi (Italia compresa)
I più letti

Rails 2.1 e ottimizzazione Active Record
Fra le novità introdotte nella prossima versione del nostro amato framework web un numero considerevole di ottimizzazioni per Active Record indirizzate al miglioramento delle performance. Se con l’attuale versione di Ruby on Rails sono state introdotte delle migliorie a livello di caching e di connessione, i miglioramenti della prossima versione daranno sicuramente una marcia in più a Rails dal momento che interessano come Active Record genera le query SQL vere e proprie.
Un esempio per tutti il miglioramento introdotto per la generazione del cosiddetto “Eager Loading”. Poniamo il caso di avere una istrizione del codice come
Person.find(:all, :include => [:friends]); con l’attuale versione di Ruby on Rails il codice SQL generato sarebbe del tipo:Una sola query, ma che si risolve nell’annoso problema 1+N che da sempre pesa su Active Record. Con la nuova versione la parola chiave
:includegenererà due o più query SQL, che hanno però un peso molto minore sul database:Al momento dell’esecuzione questa seconda soluzione risulta decisamente più performante
Perché le performance di Active Record sono importanti
In una classica applicazione Ruby on Rails ad ogni interazione dell’utente corrisponde una o più interazione con il database; quando ad esempio vogliamo visualizzare una pagina contenente un post del blog, l’applicazione quantomeno eseguirà una query sul database per estrarre i dati relativi a quel post.
La situazione più frequente è però che per visualizzare una singola pagina, e quindi all’interno di una sola particolare action, vengano eseguite due o più query, magari con relazioni esterne così come nell’esempio sopra.
Un milgioramento delle performance di Active Record influirà quindi positivamente e in modo significativo sulle performance generali dell’applicazione e sulla percezione che l’utente avrà dell’applicazione.
Se è necessario ed auspicabile ottimizzare sempre il proprio codice per alleggerire il più possibile la propria applicazione, poter contare su un ORM dalle prestazioni in costante miglioramento offre sicuramente un ottima base per lo sviluppo.
Altri articoli interessanti: