jlink选项压缩有什么作用?

mat*_*per 8 java jlink java-9

jlink compress选项有什么作用?oracle文档对此并不十分详细:

Enable compression of resources:

0: No compression
1: Constant string sharing
2: ZIP
Run Code Online (Sandbox Code Playgroud)

压缩哪些资源?有什么缺点--compress=2吗?

Dea*_*ool 9

--compress = 2是否有任何不利之处

我不知道如何在compress=2内部压缩模块,或者确切地说哪个模块将直接压缩引脚,但是我发现此错误与性能有关

性能数据/影响,供用户确定应选择哪种jlink优化

--strip-debug在JRE映像的构建中默认启用,并且将运行时映像(库/模块)的大小减小了约20%(130M-> 106M),而对启动没有影响

--compress = 0将lib /模块的大小减少了约30%(106M-> 69.5M),实际上似乎在简单测试中对启动有利(在Hello World方面约有8毫秒的改进)。

--compress = 1将lib /模块的大小减少了约54%(106M-> 49M),但启动时受到了损失(Hello World的速度下降了约8ms)

--compress = 2将lib /模块的大小减少了约53%(106M-> 49.5M),但对启动造成了更大的损失(Hello World的速度降低了约13ms)

在我看来,--compress的数字级别参数是违反直觉的,因此应该改为显式调用(--compress = strings,--compress = zip)。由于似乎两种不同的压缩策略相互冲突,因此似乎它们甚至应该互斥(删除--compress = 2)。

--compress = 0在改善启动和静态占用空间之间取得平衡,--compress = 1在减少启动时间的情况下最大程度地减少了静态占用空间。


VGR*_*VGR 4

这纯粹是基于观察。我\xe2\x80\x99d喜欢看到更权威的答案。

\n\n

看起来lib/modules结果图像中的文件是 application\xe2\x80\x99s 模块的一些二进制合并,是被压缩的。我不\xe2\x80\x99不知道该文件的实际格式是什么。

\n\n

我从未观察到使用时出现任何问题--compress=2

\n