Rake Test très lent dans Windows

Pourquoi Ruby et Ruby on Rails (1.8.6 One Click Installer, firebase database locale) sont-ils si lents sur Windows?

  • script ruby ​​/ serveur – 30 secondes
  • test de râteau – 45 secondes
  • etc.

Pourtant, lorsque je passe à un linux beaucoup plus lent, il est quasiment instantané. J’ai tout vérifié – pas de processus CPU en cours, pas de problèmes de réseau, etc.

Heck, je serais heureux avec juste une sortie verbeuse qui au moins m’a dit où il était en panne. Aucune suggestion?

En général, l’interpréteur IRM de Ruby n’est pas optimisé pour la vitesse sur Windows. Vous pouvez également l’exécuter en mode développement sur Windows vs mode de production sur les autres machines. Rails fonctionne beaucoup plus lentement en mode développement car il recharge toutes vos classes à chaque requête.

1.8.6 est une très ancienne version rbuy. Sorti il ​​y a presque 3 ans. Vous devriez fortement envisager de passer à la version 1.9 (ou au moins 1.8.7). Ou passer à JRuby. Toutes ces options entraîneront probablement une amélioration significative des performances.

1.8.7 devrait être entièrement compatible avec 1.8.6. 1.9 possède un interpréteur complètement nouveau qui fonctionne 2,5 fois plus rapidement (bien qu’il ait parfois tendance à se bloquer sur Windows). JRuby est peut-être la solution idéale pour vous puisque vous pouvez l’exécuter soit avec la compatibilité 1.8 ou 1.9, soit très stable, mais elle ne prend pas en charge les gems avec les extensions C et nécessite un adaptateur de firebase database différent.

Une dernière option serait d’essayer d’exécuter Rails à l’intérieur d’une VMWare avec CentOS ou une autre dissortingbution Linux.

La raison en est que les fichiers stat dans Windows sont terriblement lents, et comme Ruby est écrit sous Linux (et optimisé pour Linux), il n’ya pas eu beaucoup de travail pour le rendre plus rapide.

L’utilisation du rubyinstaller.org (1.8.6 ou 1.9.x) peut accélérer le processus. Je recommande le 1.8.6, car 1.9 présente certains ralentissements.

Si vous cherchez à devenir vraiment agressif, vous pouvez essayer ma gemme Fast_gem_Script, qui essaie de mettre en cache les recherches basées sur les besoins et ainsi accélérer les choses. Faites-le avec une version scratch de ruby, cependant 🙂

Malheureusement, Jruby n’est pas non plus connu pour ses recherches extrêmement rapides. Espérons que cette situation changera un jour. Jusque-là, ma rapid_gem_script et rapid_require sont les seuls moyens dont je dispose pour essayer d’accélérer.

Pour accélérer, vous pouvez essayer le chargeur de speeder supérieur (aide les rails à courir plus vite en assoupie): https://github.com/rdp/faster_require Aussi checkout spork, qui fonctionne dans le désordre, et jruby fonctionne également bien.

-rp

MISE À JOUR: (en partie) grâce à un excellent travail sur Fenix de Luis Lavena, Ruby 1.9.3-p327 est beaucoup, beaucoup plus rapide sous Windows. rake nécessitait 110+ secondes pour s’exécuter sur 1.9.3-p125, et prend maintenant environ 20 secondes sur la p327. Rails est enfin utilisable sous Windows !!

Utilisez RubyInstaller pour installer ..

J’aime prendre cette approche:

emstackment lent des rails

Dans mon cas sa

 finisher_hook: 22.463 sec 

C’est le coupable