Wir verwenden die JAR-Datei von Closure Compiler, um unsere JS-Dateien zu minimieren. Diese JS-Dateien werden generiert, wenn ein Client die Schaltfläche [Speichern] auf dem Einstellungsbildschirm anklickt.Ein Dienst, der JAR-Dateien ausführt
Jeder Aufruf der Closure Compiler-JAR-Datei dauert 3-6 Sekunden, da bei jedem Aufruf eine JVM gestartet wird. Das ist viel zu lang und ohne guten Grund ... Ich würde froh sein, die JVM im Hintergrund zu halten, entweder beim Booten oder beim ersten Anruf.
Gibt es eine Möglichkeit, JAR-Dateien von einer laufenden JVM-Maschine als Dienst oder ähnlichem zu laden? oder vielleicht eine Möglichkeit, die JVM "zwischenzuspeichern", so dass beim nächsten Aufruf eines JAR keine neue JVM gestartet wird, sondern die vorherige verwendet wird?
Die Umgebung ist Ubuntu-Server, Django, Python. Hier ist der aktuelle Code, der die JAR-Dateien aufruft:
import time, subprocess, random
# run google closure compiler
jarjs = os.path.join(ROOT_DIR, "compiler.jar")
fn_min = fn_max.replace('.js','.min.js')
p = subprocess.Popen(['java','-jar',jarjs,'--jscomp_off','internetExplorerChecks','--compilation_level','SIMPLE_OPTIMIZATIONS','--js',fn_max,'--js_output_file',fn_min], stdout=subprocess.PIPE,stderr=subprocess.PIPE)
out, err = p.communicate()
Versuchte Tropf zuerst, weil die Integration ein Kinderspiel ist. Es hatte keine signifikante Verbesserung der Geschwindigkeit. Gradle sagt, dass es nicht für die Produktion geeignet ist, besonders nicht mit eingeschaltetem Daemon. Weißt du, warum ist das so? – oriadam
@oriadam, Könnten Sie einen Link zu dieser Aussage geben? – SerCe
SerCe, Hier: https://docs.gradle.org/current/userguide/gradle_daemon.html – oriadam