GraalVM 19.2 发布,高性能跨语言虚拟机
GraalVM 19.2 发布了。GraalVM 是高性能跨语言虚拟机,用于运行 JavaScript、Python 3、Ruby、R、基于 JVM 的语言,如 Java、Scala、Kotlin 和基于 LLVM 的语言,如 C 和 C++。
该版本带来了改进的配置文件引导的优化、包括 LLVM 工具链、带有 Java Flight Recorder 支持的增强的 VisualVM、新的 Visual Studio Code 预览插件、更好的本机图像峰值性能等等。
配置文件引导的优化
在 JVM 上运行的 GraalVM JIT 模式适合高峰值性能,因为它能够在启动期间收集运行时信息,并使用它优化机器代码。GraalVM AOT 模式在启动时和内存消耗方面都很好,但由于缺少运行时信息而提供了较低的峰值性能。
为了缓解这种情况,GraalVM 团队为 GraalVM 企业版实现了概要文件引导的优化(PGO, profile-guided optimizations )。使用 PGO,可以预先收集分析数据,然后将其提供给 GraalVM 本机映像实用程序,后者将使用这些信息优化生成的二进制文件的性能。
从 19.2 开始,可以在编译的模式下运行应用程序时为 PGO 收集数据:
$ /graal-ee-19.2.0/bin/java -Dgraal.PGOInstrument=myclass.iprof MyClass $ /graal-ee-19.2.0/bin/native-image --pgo=myclass.iprof MyClass $ ./myclass
Java Flight Recorder
Java Flight Recorder(JFR)是一种用于收集有关运行中的 Java 应用程序的诊断和分析数据的工具。它收集发生在 JVM 或 Java 应用程序中特定时间点的事件的数据。
绑定 GraalVM 的 VisualVM 工具现在是支持预览,用于可视化 Java Flight Recorder 文件的数据。
要启用 JFR 支持,首先运行 $GRAALVM_HOME/bin/jvisual alvm 来启动 VisualVM。使用 Tools | Plugins | Available Plugins 列出所有可用插件,并安装VisualVM-JFR 和 VisualVM-JFR-Generic 模块。JFR 快照可以使用 File | Load…打开操作或双击 JFR 快照节点,并将快照永久添加到 JFR 存储库中。
性能改进
在所有配置中都有轻微的性能改进。一个主要的更新是改进了 GraalVM Enterprise Edition 中本机映像的默认吞吐量。
在运行 Micronaut GraalVM 示例时测量了结果,而没有任何概要文件引导的优化。对于 100 万个请求,花费了大约 10% 的 CPU 时间,并且在 19.2 秒内实现了每 CPU 请求的 10% 的高吞吐量。吞吐量仍然低于 GraalVM 的 JIT 配置,但在将 AOT 配置提高到相同水平方面继续取得进展。
LLVM 工具链
GraalVM 发行版包括 LLVM Bitcode 引擎,它可以执行 C/C++ 和其他可以编译为 LLVM Bitcode 的语言。虽然将 C/C++ 编译成 Bitcode 是可以使用标准的 LLVM 工具(clang、llvm-link 等)的,但如果是链接和构建系统,则会非常棘手。工具链旨在简化这一过程,在构建针对 GraalVM LLVM 运行时的本机项目时,为编译器提供开箱即用的插入替代。
首先,下载 GraalVM 19.2,然后通过工具链运行一个示例“Hello World!”C++ 程序,操作:
$ $GRAALVM_HOME/jre/languages/llvm/native/bin/clang++ hello-c++.cpp -o hello $ $GRAALVM_HOME/bin/lli hello
Visual Studio Code 的 GraalVM 扩展
第一个实验性的 VS Code 扩展,为在 GraalVM 上运行的编辑和调试程序提供了基本支持。
下载地址:
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Rider 2019.2.1 发布,跨平台 .NET IDE
Rider 2019.2.1 发布了,这是针对 2019.2 的修复版本,包含以下错误修复: 合并 DataGrip 的修复程序,以停止导致完全冻结的高内存使用 Enter、Tab 和 Space 再次完成代码完成中的所选项目 现在,在 Visual Studio 安装中捆绑的 MSBuild 在自动检测中成为首选,它取代了在 Rider 安装中捆绑的 MSBuild 发布公告:https://blog.jetbrains.com/dotnet/2019/08/20/rider-2019-2-1/
- 下一篇
PowerShell 7 Preview 3 发布
微软发布了PowerShell 7 Preview 3,Powershell 7 preview 3 构建在 .NET Core 3.0 preview 8 之上,.NET Core 3.0 重新引入了大量 .NET Framework API,打开了大量随 Windows 附带的 PowerShell 模块,这些模块将被验证和标记为兼容。由于对模块的兼容性更改是 Windows 的一部分,因此需要最新版本的 Windows 10/Windows Server 来实现完全模块兼容性。 默认情况下预览版中的实验特性 在默认情况下启用所有实验特性,以便让PowerShell 委员会获得更多反馈,以确定某个特性是否应该继续作为实验功能,是否应该从实验性功能转移到稳定特性(非实验性功能),或者被删除。在稳定的版本(以及候选版本)上,默认情况下将继续禁用实验性功能。 注意,如果以前手动启用了实验特性,powershell.config.json 设置文件将优先记录,并且只会启用该文件中列出的实验性功能。你可以删除该文件或运行 Get-ExperimentalFeature | Enable-Ex...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
-
Docker使用Oracle官方镜像安装(12C,18C,19C)
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8编译安装MySQL8.0.19
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
推荐阅读
最新文章
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS6,CentOS7官方镜像安装Oracle11G
- SpringBoot2整合Redis,开启缓存,提高访问速度
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- Hadoop3单机部署,实现最简伪集群
- MySQL8.0.19开启GTID主从同步CentOS8
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果