Wie kann ich die Ruby / Rake-Aufgabe beschleunigen?

8

Rake - Tasks dauert etwa 18 Sekunden. Dies ist genau die Zeit, die benötigt wird, um alle Aufgaben zu laden. Daher wird jede Aufgabe, die ich definiere, mindestens so lange dauern, bis sie ausgeführt wird:

%Vor%

Mein Rakefile:

%Vor%

Irgendeine Idee warum Rake zu viel Zeit braucht? Danke

    
Laughingman 17.12.2011, 14:41
quelle

4 Antworten

4

Probieren Sie Frühling

aus

Die Befehlszeile sieht folgendermaßen aus:

%Vor%

Es wird beim ersten Mal mehr Zeit benötigen, aber nachfolgende Läufe werden sehr schnell sein.

    
Grimmo 21.02.2013 14:31
quelle
3

Diese Lösung funktionierte für mich: schnellere Rake-Aufgaben in Rails .

Ich musste eine kleine Variante machen, wo ich ein lib/tasks/no_rails Verzeichnis erstellt habe und alle Rake-Dateien, die keine Rails benötigen, dort einfügt und nur die mit der oben genannten Methode geladen.

    
Pratik Khadloya 16.05.2013 23:45
quelle
1

Ich mag die Lösung, die Pratik für den allgemeinen Fall des Ladens von Schienen für Aufgaben, die sie brauchen, und nicht für diejenigen, die dies nicht tun, für jede Rechenaufgabe erwähnt, ohne sich vorher daran erinnern zu müssen.

Eine weniger invasive Methode zum Ausführen einer Rake-Task, die keine Rails benötigt, ist die Verwendung der Option -f rake, um Rake zu sagen, eine bestimmte Rakefile zu verwenden. Auf diese Weise wird Rake nicht in allen Rails nach Rake-Aufgaben suchen.

Wenn Sie beispielsweise davon ausgehen, dass sich Ihre oben genannte Aufgabe in einer Datei namens Rakefile auf der obersten Ebene Ihres Projekts befindet und Ihre Rakefile nichts tut, was Rails wie require File.expand_path('../config/application', __FILE__) lädt, können Sie Folgendes tun:

%Vor%

und es sollte Ihre Spezifikationsaufgabe viel schneller ausführen. Probieren Sie $ time rake -f Rakefile -T ; Ich habe das mit einem Rails-unabhängigen Rakefile von mir gemacht und habe:

%Vor%

Der Nachteil ist, dass Sie daran denken müssen, diese Option jedes Mal anzugeben, und nicht, wenn Sie eine Rake-Aufgabe von Rails wie rake db:migrate ausführen möchten.

    
carols10cents 08.09.2013 15:45
quelle
0

Die gesamte Rails-Umgebung muss geladen werden, daher nehmen auch einfache Rake-Tasks wie rake --tasks etwas Zeit in Anspruch. Das Öffnen einer Konsole mit rails console oder script/console dauert ähnlich. Sie können versuchen, Ruby oder Rails zu hacken beschleunigen Sie Rake , aber zu viel Optimierung kann schlecht sein, wenn Sie später zu einer neueren Version wechseln möchten. Da die Schienenumgebung geladen werden muss, Aufräumen kann ebenfalls helfen.

    
0x4a6f4672 21.06.2012 14:02
quelle

Tags und Links