Question

J'ai une assez grande application Rails (Rails 3.2.3), utilisant le pipeline d'actifs.Il y a pas mal de fichiers dans le dossier des ressources.

Sous 1.8.7, en cours d'exécution rake assets:precompile prend 4 minutes.C'est long, mais en raison du grand nombre d'actifs, je suis prêt à le tolérer.

Le problème est qu'après la mise à niveau de l'application vers la version 1.9.2, l'exécution rake assets:precompile prend 28 minutes.

Voici les versions de gemmes pertinentes :

rails (= 3.2.3)
uglifier (1.2.3)
  execjs (~> 1.3.0)
therubyracer (~> 0.9.9)
  libv8 (~> 3.3.10)
sprockets (2.1.2)
  hike (~> 1.2)
  rack (~> 1.0)
  tilt (~> 1.1, != 1.3.0)

Quand je tail -f log/production.log Je vois les actifs en cours de compilation et je ne peux pas identifier le long délai d'un seul actif (même s'il semble que je vois les mêmes actifs plusieurs fois dans les journaux - probablement parce qu'il y a plusieurs étapes pour chaque actif ?)

Quelles autres étapes dois-je essayer pour aider à diagnostiquer le problème ?

Était-ce utile?

La solution

Ruby 1.9.2 a connu de graves régressions du temps de chargement, qui, je crois, ont augmenté de façon exponentielle avec le nombre de fichiers chargés.Cela a frappé très durement les applications Rails, et je soupçonne que c'est la cause de l'augmentation considérablement du temps de compilation des actifs que vous constatez.

Cela a été corrigé dans la version 1.9.3, alors essayez de mettre à niveau vers cette version ou rétroporter le patch de chargement vers 1.9.2.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top