温馨提示:文本由机器自动转译,部分词句存在误差,以视频为准
00:00
哎,最后呢,我们提到了一个特性叫Java的动态编译器,呃,对应的呢,是官方的243和295这样两个GP。行,那首先我们来看一下产生的背景,说Oracle呢,一直在努力提高Java启动和运行时的性能,呃,希望呢,它能够在更广泛的场景达到呢或接近本地语言的性能。啊,这呢,就不得不提到C和C加的这个成员啊,C跟C加的成员呢,一直到现在呢,还在嘲笑这个Java说呢启动慢啊,吃内存。当然呢,也不光C和C加加的程序员,像Python这样的语言的程序员呢,嘲笑Java呢,这个开发效率比较低。啊,当然了,Java呢有Java的好处,这里呢,我们就主要来谈谈它的这个问题啊,提到了启动慢和是内存这样的事情。那是什么样的原因导致这样的问题存在呢?下边呢,我们有解释说明,哎,主要原因呢,是因为我们Java啊,我们所编写的这个Java文件啊,要想被Java虚拟机去解释运行,那我们呢,只能够把它先编译成二进制文件。
01:05
啊,并不是我们真正要执行的本地代码。那需要呢,我们Java虚拟机进对这个二进制代码呢,进行解释和编译啊,就带来了额外的开销。那这呢,咱们就希望呢,去提供一个叫动态的编译器啊,这里呢,首先就提到叫j just in time啊J编译器,说这个编译器的话呢,能够在运行的时候呢,呃,将我们的代码哎,编译成本地代码。啊,速度呢,就比较快了。啊,但是它有它的问题,就是现在呢,我们Java的这个项目啊,越来越大啊,越来越复杂,那JT这个编译器的话呢,它的启动呢,啊,它的热身需要花费很长的时间。哎,同时的话呢,很多的Java方法呢,还没办法进行编译。啊,导致我们这个性能呢,啊有所下降,所以它呢不太靠谱。那在我们JDK9当中呢,引入了叫AOT。那叫a ahead of time。
02:02
那AOT的话呢,它目前还处于试验阶段啊,但是这个功能呢,能够使我们Java应用程序在被虚拟机启动之前呢,先把Java的这个类编译成原生代码,那同样呢,能够提升我们的启动的一个效率。啊,这呢就是主要目的呢,就是为了啊启动慢是内存这样问题的一个解决。好,但是我们现在的at刚才说到了哈,它在处于一个试验阶段,技术呢还不成熟,呃,希望呢,等到Java时的时候呢,有一个稳定的啊release版啊发布。啊,但是这呢,已经是比较好的一个消息了啊,那那下边也提到了相关的这样的一些API被集成到我们JAVA9当中,虽然呢目前来看是一小步,但是呢,完全用Java语言来实现可靠的高性能的动态编译器已经不再是遥不可及的梦想了。哎,那我们也希望呢,在后续这个版本当中能够体现啊,Java启动和执行的一个效率的提升。这呢,就是我们说的最后一个特性。
我来说两句