java正则表达式提前编译_Java 9将支持提前编译

java正则表达式提前编译

Java的9将名列前茅的时间支持(AOT)编译提高的小型和大型Java应用程序的启动时间,以最高的峰值性能的影响有限, 根据公告 。 需要提前编译,因为即使JIT编译器速度很快,“ Java程序可能会变得如此庞大,以至于JIT完全预热需要很长时间。” 另外,可能发生的情况是,不经常使用的Java方法根本没有被编译,这可能由于重复的解释调用而导致性能下降。

但是,值得注意的是,唯一受支持的模块是java.base 做出此决定的原因是为了减少问题空间“因为java.base的Java代码是预先众所周知的,并且可以在内部进行全面测试。” 用户必须编译模块并将生成的AOT库复制到JDK安装目录中,或在java命令行上指定它。 jaotc,将使用新工具:

jaotc --output libHelloWorld.so HelloWorld.class
jaotc --output libjava.base.so --module java.base

jaotc是java安装的一部分–与javac相同。

jaotc --output libHelloWorld.so HelloWorld.class

用户必须在应用程序执行期间指定生成的AOT库:

java -XX:AOTLibrary=./libHelloWorld.so HelloWorld

可以使用与javac相同的方式使用此工具。

jaotc<options> <--module name>

要么

jaotc<options> <list of classes or/and jar files>

还请参见: Java 9推迟到2017年7月:“拼图需要更多时间”

局限性

只有运行64位Java的64位Linux系统才支持Ahead-of-time,并且支持AOT编译的唯一模块是 java.base 它可能不会编译使用动态生成的类和字节码的Java代码,并且应在Java应用程序将在其上使用AOT代码的同一系统或具有相同配置的系统上执行。

另外,并非所有的应用程序都能从AOT编译的代码中受益。 由于这是一项选择功能,因此可以避免用户应用程序可能出现的性能下降。 如果用户注意到应用程序启动速度较慢或未达到预期的峰值性能,则可以使用 -XX:-UseAOT 标志 关闭AOT ,或删除任何AOT库。

在这里阅读整个公告。

翻译自: https://jaxenter.com/java-9-will-support-ahead-time-compilation-129874.html

java正则表达式提前编译

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值