【发布时间】:2016-11-23 12:37:41
【问题描述】:
我们正在使用 Closure Compiler jar 文件来缩小我们的 JS 文件。 这些 JS 文件是在客户端点击其设置屏幕上的 [保存] 按钮时生成的。
每次调用 Closure Compiler jar 文件需要 3-6 秒,因为每次调用都会启动一个 JVM。这太长了,而且没有充分的理由......我很乐意让 JVM 在后台启动并运行,无论是在启动时还是第一次调用时。
有没有办法从正在运行的 JVM 机器上加载 JAR 文件作为服务,或者类似的东西?或者可能是一种“缓存”JVM 的方法,以便下次调用 jar 时,它不会启动新的 JVM,而是使用前一个?
环境是Ubuntu服务器、Django、Python。 这是调用 jar 文件的当前代码:
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()
【问题讨论】:
标签: java jar jvm google-closure-compiler ubuntu-server