gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 09:54:11 25 4
gpt4 key购买 nike

我正在使用Google Closure Compiler jar 文件,以最大限度地减少反射(reflect)客户所做更改的生产 JS 文件。每次用户单击后端面板上的“发布更改”时,它都会创建对compiler.jar 文件的系统调用 - 但每次此类调用都需要 4-6 秒,无论 JS 文件大小如何。经过研究,我发现大部分延迟是为每次调用加载 JavaVM 造成的。系统是Ubuntu和Python。

如何保持 JavaVM 持续运行并使其在每次用户单击“发布”时加载 compiler.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

最佳答案

有几种用于保持进程加载的通用 Java 解决方案,包括:

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

https://github.com/ninjudd/drip

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

关于java - 当从 Python 调用 jar 时,如何最小化 JavaVM 的加载时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37368972/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com