2008-08-25 5 views
7

Je suis très désireux de développer ma première application Ruby, car mon entreprise a enfin béni son utilisation en interne. Dans tout ce que j'ai lu à propos de Ruby jusqu'à la version 1.8, il n'y a jamais rien de positif à propos des performances, mais je n'ai rien trouvé sur la version 1.9. Les derniers chiffres que j'ai vus à propos de 1,8 l'ont considérablement ralentie par rapport à tout ce qui se passe là-bas, alors j'espère que cela a été abordé en 1.9.Ruby Performance

Les performances ont-elles été radicalement améliorées? Y at-il des choses concrètes qui peuvent être faites avec les applications Ruby (ou les choses à éviter) pour maintenir les performances au meilleur niveau possible?

Répondre

2

Matz ruby ​​1.8.6 est beaucoup plus lent en ce qui concerne les performances et 1.9 et JRuby font beaucoup pour l'accélérer. Mais la performance n'est pas telle qu'elle vous empêchera de faire ce que vous voulez dans une application web. Il y a beaucoup de grands sites Ruby on Rails qui se contentent du langage "plus lent interprété". Lorsque vous développez des applications Web, les problèmes de performances sont beaucoup plus importants que la vitesse de la langue dans laquelle vous les écrivez.

4

Si l'évolutivité et les performances sont vraiment importantes pour vous, vous pouvez également consulter Ruby Enterprise Edition. C'est une implémentation personnalisée de l'interpréteur Ruby qui est censé être beaucoup mieux sur l'allocation de mémoire et la récupération de place. Je n'ai pas vu de statistiques objectives qui le comparent directement à JRuby, mais toutes les preuves anecdotiques que j'ai entendues ont été très très bonnes.

Ceci provient de la même société qui a créé Passenger (aka mod_rails) que vous devriez absolument vérifier comme solution de déploiement de rails si vous décidez de ne pas emprunter la voie JRuby.

0

Je ne suis pas un programmeur Ruby mais je suis assez bien impliqué récemment dans un déploiement JRuby et peut donc tirer quelques conclusions . Ne vous attendez pas à beaucoup de la performance de JRuby. En mode interprété, il semble être quelque part dans la gamme de C Ruby. Le mode JIT pourrait être être plus rapide, mais seulement en théorie. En pratique, nous avons essayé le mode JIT sur Glassfish pour une application Rails de taille décente sur un serveur de taille moyenne (dual core, 8 Go de RAM). Et la vérité est, le JITting a pris tellement de temps, que le serveur a besoin de 20-30 minutes avant de répondre à la première demande. L'utilisation de la mémoire était astronomique, le profilage ne fonctionnait pas parce que le système entier s'arrêtait avec un profiler attaché.

Conclusion: JRuby a ses mérites (multithread, plate-forme solide, intégration facile de Java), mais étant donné que le mode interprété est le seul mode qui a fonctionné pour nous en pratique, on peut s'attendre à C Ruby.

-1

Je recommanderais l'utilisation de Passenger - il rend le déploiement et la gestion des applications Rails trivial