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

2024-10-01 19:26:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用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


Tags: 文件用户sourceoutput编译器系统googlejs
1条回答
网友
1楼 · 发布于 2024-10-01 19:26:00

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

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

以及

https://github.com/ninjudd/drip

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

相关问题 更多 >

    热门问题