有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java当从Python调用jar时,如何最小化JavaVM的加载时间?

我使用Google Closure Compilerjar文件来最小化反映客户端所做更改的生产JS文件。每次用户单击后端面板上的“发布更改”时,都会创建对编译器的系统调用。jar文件-但无论JS文件大小如何,每次调用都需要4-6秒。经过研究,我发现大部分延迟是为每个调用加载JavaVM。系统是Ubuntu和Python

如何保持JavaVM持续运行并使其加载编译器。每次用户单击“发布”时,jar文件都会出现吗

Python代码:

import subprocess
jarjs = os.path.join(ROOT_DIR, "compiler.jar")
fn_output = fn_source.replace('.js','.min.js')
p = subprocess.Popen(['java','-jar',jarjs,'--jscomp_off','internetExplorerChecks','--compilation_level','SIMPLE_OPTIMIZATIONS','--js',fn_source,'--js_output_file',fn_output], stdout=subprocess.PIPE,stderr=subprocess.PIPE)
out, err = p.communicate()

fuller code


共 (1) 个答案

  1. # 1 楼答案

    有几种通用的java解决方案可以让进程保持加载状态,包括:

    http://www.martiansoftware.com/nailgun/

    https://github.com/ninjudd/drip

    2018年9月更新:现在还可以使用Graal native-image工具构建闭包编译器。这提供了惊人的启动速度,但峰值性能较低。对于JVM版本中30秒以下的任何内置组件,这可能是一个很好的折衷方案