jlink compress选项有什么作用? oracle文档对此没有很详尽的说明:
Enable compression of resources:
0: No compression
1: Constant string sharing
2: ZIP
压缩哪些资源? --compress=2
有什么不利之处吗?
答案 0 :(得分:7)
--compress = 2
是否有任何不利之处?我不知道compress=2
是如何内部压缩模块的,或者确切地是哪个模块将明确地压缩引脚,但是我发现此错误与性能有关
Performance data/impact for users to determine what jlink optimization should be selected
-默认情况下,在JRE映像的构建中启用了trip-debug,并且将运行时映像(库/模块)的大小减小了约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最大限度地减少了静态占用空间,对启动时间的影响很小。
答案 1 :(得分:3)
这纯粹是基于观察。我希望看到更权威的答案。
在压缩后的结果图像中出现lib/modules
文件,它是应用程序模块的二进制合并。我不知道该文件的实际格式。
我从未发现使用--compress=2
有任何问题。