2009-02-27 7 views
4

J'ai un script ruby ​​qui prend environ 30 secondes pour démarrer. Il en faut autant parce qu'il essaie de charger toutes les bibliothèques et autres choses.Accélérer le démarrage du script Ruby sous Windows ou Cygwin

Quand je le fais ruby.exe -v c'est instantané.

Je ne veux pas toucher au script original ruby, qui n'est pas écrit par moi.

Quelles sont les astuces pour accélérer ce processus?

  • Puis-je le précompiler?
  • Puis-je précaborder tous ces fichiers?

J'ai besoin de faire cela sous Windows ou Cygwin.

MISE À JOUR:

  • Scripts est assez lent sous Linux/Mac ainsi, cette condition n'est pas spécifique à Windows.
  • Ce rubis 1.8.7 normal (vitesse similaire dans d'autres versions de rubis)
  • principal goulot d'étranglement chargement tant de bibliothèques (j'ai supprimé les fichiers non requis et les bibliothèques et diminuent le temps de façon drastique, mais toujours lent)
+0

Pouvez-vous s'il vous plaît fournir plus d'informations? Comme: Quel est le script? Est-ce que ça marche vite sur linux/mac? Combien de libs avez-vous? Le script exécute-t-il votre ruby, ou peut-être jruby? – pope

+0

J'ai mis à jour la question. Je ne suis pas une personne rubis moi-même, je ne sais pas ce que jruby est, c'est une application de rubis simple. Script est une application massive, qui charge beaucoup de plugins onstartup. –

+0

Au moins afficher toutes les lignes requises en haut de votre script. Il y a probablement quelque chose qui cause le ralentissement. 30 secondes est trop long pour que les choses se chargent. Quelque chose essaye probablement de faire une sorte de communication de réseau et expire. –

Répondre

1

Je suppose que le script utilise rubygems? (Il faudra dire "rubygems" si c'est le cas)

Vous pourriez essayer d'installer des minigems (gem install minigems) et ensuite utiliser des minigems au lieu de rubygems - cela devrait accélérer un peu les choses.

0

Désolé, mais il n'y a aucun moyen de compiler un script ruby. Quel genre de choses ce script charge-t-il?

Vous avez raison, 30 secondes c'est assez long. Est-ce que ce script fait des appels sur le web ou des bases de données très chères? Il est difficile de croire que les bibliothèques prendraient tellement de temps à charger

... Je viens de remarquer les commentaires et j'ai vu que vous l'avez fait descendre à 1-4 secondes ... c'est très bien, surtout quand on descend de 30. d'autres commentaires ont raison, s'il vous plaît poster requires en haut du script