OpenJDK 新提案:将 JDK 大小减少约 25%
OpenJDK 正在制定一项“JEP 493: Linking Run-Time Images without JMODs”的提案,旨在将 JDK 的大小减少约 25%。
“通过启用
jlink
工具,无需使用 JDK 的 JMOD 文件即可创建自定义运行时映像,从而将 JDK 的大小减少约 25%。此功能必须在 JDK 生成时启用;默认情况下不会启用,有些 JDK 供应商可能会选择不启用。”
该提案的动机在于减少云环境中文件系统上 JDK 的安装大小。“在云环境中,文件系统上安装的 JDK 的大小非常重要,因为包含已安装 JDK 的容器镜像会通过网络自动且频繁地从容器注册表中复制。减小 JDK 的大小将提高这些操作的效率。”
提案解释称,完整安装的 JDK 包含两个主要组件:运行时映像(即可执行的 Java 运行时系统)和运行时映像中每个模块的一组打包模块(JMOD 格式)。在创建自定义运行时映像时,jlink
工具会使用 JMOD 文件。完整 JDK 本身的运行时映像就是通过jlink
从这些 JMOD 文件创建的。因此,运行时映像中的每个类文件、本地库、配置文件和其他资源也都存在于其中一个 JMOD 文件中,从而造成了大量的空间浪费。
完整 JDK 中的 JMOD 文件约占 JDK 总大小的 25%。如果能增强jlink
工具以从运行时映像本身中提取类文件、本机库、配置文件和其他资源,就可以通过省略 JMOD 文件来大幅减少已安装 JDK 的大小。
因此,提案计划引入一个 JDK build-time 配置选项--enable-linkable-runtime
,在构建 JDK 时,jlink
可以在不使用 JDK 的 JMOD 文件的情况下创建运行时映像,并且不包含那些文件-即没有 jmods 目录。
$ configure [ ... other options ... ] --enable-linkable-runtime $ make images
生成的 JDK 将比使用默认配置构建的 JDK 小 25%,并包含相同的模块。
更多详情可查看此处。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
RustDesk 远程桌面 Web 客户端 V2 预览
RustDesk Web 客户端 V1 已经两年多没有更新,缺少许多功能,我们的团队花了三个月时间开发 V2。今天,我们自豪地介绍 V2 预览版,它在 V1 的基础上进行了许多增强。这些改进包括更强的解码能力、更好的国际键盘支持、剪贴板支持(不仅是文本,还包括图像剪贴板)和文件传输功能等。尽管受到浏览器功能的限制,我们努力确保 Web 版本提供与桌面版本同步的功能集和用户体验。 您可以通过访问 https://rustdesk.com/web 访问 RustDesk Web 客户端 V2 预览版。如果您希望通过 V2 访问自己的服务器,请根据[文档]配置 WebSocket Secure (WSS) 支持,并在端口 21118/21119 上进行设置。 location /ws/id { proxy_pass http://localhost:21118; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; proxy_...
- 下一篇
得物 iOS 函数调用栈及符号化调优实践
一、背景 随着《个人信息保护法》等法律法规的逐步发布实施,个人隐私保护受到越来越多人的关注。在这个整体的大背景下,得物持续完善App的各项合规属性,而在这个过程中,绕不开法务、安全、产品、设计、研发、测试几个重要环节,其中研发与测试属于具体落地的最后一环,直接关系到App的隐私合规质量。 伴随得物用户规模和业务复杂度不断提升,应用上线前的隐私合规检测愈发重要;当前得物版本灰度前的合规检测正在向着规模化、自动化发展,其中动态检测的性能和效率瓶颈也越发凸显。 谈到在iOS上获取当前线程的调用栈时,大部分开发者第一个想到的是 +[NSThread callStackSymbols] 。该个方法在日常开发调试带有符号的测试包过程中,可以快速获取符号化之后的堆栈,十分符合当前得物灰度前针对测试包进行动态检测隐私函数调用的场景。 但在实际的使用过程中,当大量且频繁的利用 +[NSThread callStackSymbols] 获取隐私函数调用的符号化堆栈时,CPU的占用率居高不下,造成测试机卡死发热,严重影响正常的回归测试。 因此iOS端符号化堆栈采集的难点变成如何"不卡顿"与"无感知"的获取调...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- 2048小游戏-低调大师作品
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- 设置Eclipse缩进为4个空格,增强代码规范
- CentOS关闭SELinux安全模块
- CentOS7,8上快速安装Gitea,搭建Git服务器