Ruby on Rails 3 désormais aussi rapide que la banche 2.3.x
Grâce à la refonte en profondeur de sa librairie de relations algébriques

Le , par Idelways, Expert éminent sénior
Mise à jour du 22/11/2010 par Idelways

Rails 3.0.3 vient de sortir. Une mise à jour mineure, certes, mais aussi une prouesse remarquable que vient d'accomplir Aaron Patterson sur le framework web Ruby on Rails.

Grâce au travail de benchmarking/refactoring acharné de ce contributeur, Active Record, l'ORM (mapping objet-relationnel) par défaut du framework regagne la perte des performances qu'il a encaissé en passant à la bibliothèque de relations algébriques ARel à partir de la version 3 du framework.



Bien qu'il offre une API très riche et "developer-friendly", le couple ActiveRecord 3/ARel-1 était jusqu'à 5 fois plus lent que son équivalent de la branche 2.3.x.



La version 2.0 de ARel est une réécriture complète de la bibliothèque mais l'API reste inchangée, aucune modification des applications Rails 3 n'est nécessaire.

Pour installer cette version, il suffit de lancer la commande gem install rails.

Ou via bundler : éditer le fichier Gemfile, modifier le numéro de version du framework comme suit : gem 'rails', '3.0.3', puis lancer : bundle install

Patterson a publié un article détaillé sur les blogs de AT&T et présenté sa prouesse durant la conférence RubyConf, les slides de sa présentation (riches en renseignements) sont disponible en ligne :

[ame="http://www.slideshare.net/tenderlove/zomg-why-is-this-code-so-slow"]ZOMG WHY IS THIS CODE SO SLOW@@AMEPARAM@@ssplayer2.swf?doc=presentation-101111155350-phpapp02&stripped_title=zomg-why-is-this-code-so-slow@@AMEPARAM@@presentation-101111155350-phpapp02@@AMEPARAM@@zomg-why-is-this-code-so-slow[/ame]

Source : le blog du Framework

Et vous ?

Développez-vous en Ruby on Rails 3 ?
Cette version est-elle aussi lente que ça (avant cette mise à jour) ?


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse

Avatar de Lorito Lorito - Membre régulier https://www.developpez.com
le 22/11/2010 à 13:31
Je n'utilise pas rails mais me tiens au courant de son évolution.
Et justement la version 3.0.3 a semble t-il apporté quelques changements au niveau de la syntaxe :

Par exemple :
3.0.1: Model.select(:field_1, :field_2)
3.0.3: Model.select([:field_1,:field_2])

Ainsi qu'un problème de consommation CPU très élevé lors de requêtes avec des intervalles de dates.

Et enfin un problème relatif à la classe UploadedFile.

De nombreux posts négatifs peuvent être trouvés ici
Pour une version mineur annoncée comme une MAJ totalement compatible, celle-ci n'as pas l'air de se faire sans douleur.

edit : Mise en page, fautes d'orthographes
piaf : Phrase pas clair
Avatar de kaymak kaymak - Membre chevronné https://www.developpez.com
le 23/11/2010 à 16:35
Citation Envoyé par Lorito  Voir le message
Je n'utilise pas rails mais me tiens au courant de son évolution.
Et justement la version 3.0.3 a semble t-il apporté quelques changements au niveau de la syntaxe :

Par exemple :
3.0.1: Model.select(:field_1, :field_2)
3.0.3: Model.select([:field_1,:field_2])

Ainsi qu'un problème de consommation CPU très élevé lors de requêtes avec des intervalles de dates.

Et enfin un problème relatif à la classe UploadedFile.

De nombreux posts négatifs peuvent être trouvés ici
Pour une version mineur annoncée comme une MAJ totalement compatible, celle-ci n'as pas l'air de se faire sans douleur.

edit : Mise en page, fautes d'orthographes
piaf : Phrase pas clair

Hello,

Ne suivant pas trop l'actu de rails, ce post était intéressant. Maintenant le gros problème la dedans c'est surtout le changement dans l'api, qui n'aurait pas dû arriver selon les engagements pris par la core team.
D'après ce que j'ai pu lire.
Cependant, le travail réalisé n'est pas non plus à jeter, mais sa release est sujette à discussions qui auraient dû se tenir au préalable.

D'ailleurs pour faire suite à ton post il semble que le problème de conso CPU avec les intervalles de dates soit patché. C'est efficace.

Les posts négatifs que tu cites peuvent être aussi facilement dénigrés vu l'attitude de certains, qui push en prod une release de la veille...

Bon sinon, rien à voir, mais j'ai pu découvrir rails for zombie sur ce site, un tutorial interactif pour apprendre rails.
C'est une super initiative, super sympa ! chapeau.

--> http://weblog.rubyonrails.org/

a +
Offres d'emploi IT
RESPONSABLE WEB ANALYTICS F/H
VACALIANS GROUP - Languedoc Roussillon - SETE (34)
Développeur WEB PHP F/H
VACALIANS GROUP - Languedoc Roussillon - SETE (34)
Développeur Web FULL-STACK
VACALIANS GROUP - Languedoc Roussillon - SETE (34)

Voir plus d'offres Voir la carte des offres IT
Contacter le responsable de la rubrique Accueil