JIT

0 人感兴趣 · 19 次引用

  • 推荐
  • 最新
https://static001.geekbang.org/infoq/63/63caa746fa00417b9ee52123bdf89450.jpeg?x-oss-process=image/resize,w_416,h_234

深入理解编译优化之循环展开和粗化锁

用户头像
程序那些事 2020 年 7 月 4 日

之前在讲JIT的时候,有提到在编译过程中的两种优化循环展开和粗化锁,今天我们和小师妹一起从Assembly的角度来验证一下这两种编译优化方法,快来看看吧。

https://static001.geekbang.org/infoq/21/219dae734a644d6a0d54325aa7dca475.png?x-oss-process=image/resize,w_416,h_234

Lambda 初次使用很慢?从 JIT 到类加载再到实现原理

用户头像
Kerwin 2020 年 7 月 1 日

研究Java Lambda 为什么第一次执行会很慢,从JIT即时编译到类加载,再到底层原理,一次求知欲爆棚的体验

https://static001.geekbang.org/infoq/45/45a9ec85f6b9132f82d92e90123dd72c.jpeg?x-oss-process=image/resize,w_416,h_234

JVM 系列之: 再谈 java 中的 safepoint

用户头像
程序那些事 2020 年 8 月 7 日

java程序里面有很多很多的java线程,每个java线程又有自己的stack,并且共享了heap。这些线程一直运行呀运行,不断对stack和heap进行操作。

https://static001.geekbang.org/infoq/c4/c4877ab8dc9be5a4e244f6b69631fab7.jpeg?x-oss-process=image/resize,w_416,h_234

小师妹学 JVM 之:GC 的垃圾回收算法

用户头像
程序那些事 2020 年 6 月 16 日

JVM的重要性不言而喻了,如果把java的应用程序比作一辆跑车,那么JVM就是这辆车的发动机,没有它,java程序就成了空中楼阁,无根浮萍。而在JVM中有一块内存区域叫做运行时数据区域,存储了运行时所需要的所有对象,而Heap Area则是其中最大的一块。

https://static001.geekbang.org/infoq/d0/d0caedc4aefc435cdc814dd8a2bbab06.jpeg?x-oss-process=image/resize,w_416,h_234

JVM 详解之: 运行时常量池

用户头像
程序那些事 2020 年 7 月 16 日

JVM在运行的时候会对class文件进行加载,链接和初始化的过程。class文件中定义的常量池在JVM加载之后会发生什么神奇的变化呢?快来看一看吧。

https://static001.geekbang.org/infoq/1c/1cb95ce1e63166626b0481992b47accd.jpeg?x-oss-process=image/resize,w_416,h_234

JVM 系列之: 从汇编角度分析 Volatile

用户头像
程序那些事 2020 年 8 月 5 日

Volatile关键字对熟悉java多线程的朋友来说,应该很熟悉了。Volatile是JMM(Java Memory Model)的一个非常重要的关键词。通过是用Volatile可以实现禁止重排序和变量值线程之间可见两个主要特性。

https://static001.geekbang.org/infoq/7f/7f741d75d84f7f3767c9c1f24b0c8516.jpeg?x-oss-process=image/resize,w_416,h_234

小师妹学 JVM 之:JIT 中的 PrintAssembly

用户头像
程序那些事 2020 年 6 月 29 日

想不想了解JVM最最底层的运行机制?想不想从本质上理解java代码的执行过程?想不想对你的代码进行进一步的优化和性能提升?

https://static001.geekbang.org/infoq/c9/c9e90ba4336e83810cc97d0b422a2514.jpeg?x-oss-process=image/resize,w_416,h_234

小师妹学 JVM 之:JDK14 中 JVM 的性能优化

用户头像
程序那些事 2020 年 6 月 18 日

上一篇文章我们讲到了JVM为了提升解释的性能,引入了JIT编译器,今天我们再来从整体的角度,带小师妹看看JDK14中的JVM有哪些优化的方面,并且能够从中间得到那些启发。

https://static001.geekbang.org/infoq/61/616da0be1bfa335a589127c2e062509c.jpeg?x-oss-process=image/resize,w_416,h_234

小师妹学 JVM 之:JIT 中的 PrintCompilation

用户头像
程序那些事 2020 年 6 月 24 日

上篇文章我们讲到了JIT中的LogCompilation,将编译的日志都收集起来,存到日志文件里面,并且详细的解释了LogCompilation日志文件中的内容定义。今天我们再和小师妹一起学习LogCompilation的姊妹篇PrintCompilation,看看都有什么妙用吧。

https://static001.geekbang.org/infoq/c9/c9e90ba4336e83810cc97d0b422a2514.jpeg?x-oss-process=image/resize,w_416,h_234

小师妹学 JVM 之:JIT 中的 LogCompilation

用户头像
程序那些事 2020 年 6 月 19 日

我们知道在JVM中为了加快编译速度,引入了JIT即时编译的功能。那么JIT什么时候开始编译的,又是怎么编译的,作为一个高傲的程序员,有没有办法去探究JIT编译的秘密呢?答案是有的,今天和小师妹一起带大家来看一看这个编译背后的秘密。

https://static001.geekbang.org/infoq/44/447d690875e54e418cb4fbd4a77586d3.jpeg?x-oss-process=image/resize,w_416,h_234

小师妹学 JVM 之: 深入理解 JIT 和编译优化 - 你看不懂系列

用户头像
程序那些事 2020 年 6 月 17 日

接下来要进入的是JVM中比较晦涩难懂的概念,这些概念是那么的枯燥乏味,甚至还有点惹人讨厌,但是要想深入理解JVM,这些概念是必须的,我将会尽量尝试用简单的例子来解释它们,但一定会有人看不懂,没关系,这个系列本不是给所有人看的。

https://static001.geekbang.org/infoq/cf/cfa997f6e7a3a79841b41327f163567e.jpeg?x-oss-process=image/resize,w_416,h_234

JIT 的 Profile 神器 JITWatch

用户头像
程序那些事 2020 年 7 月 5 日

老是使用命令行工具在现代化社会好像已经跟不上节奏了,尤其是在做JIT分析时,使用LogCompilation输出的日志实在是太大了,让人望而生畏。有没有什么更加简便的方法来分析JIT日志呢?快来和小师妹一起来学习JITWatch吧。

https://static001.geekbang.org/infoq/a6/a6b79151ef660c6e82e872f198559703.jpeg?x-oss-process=image/resize,w_416,h_234

JVM 中栈的 frames 详解

用户头像
程序那些事 2020 年 7 月 10 日

我们知道JVM运行时数据区域专门有一个叫做Stack Area的区域,专门用来负责线程的执行调用。那么JVM中的栈到底是怎么工作的呢?快来一起看看吧。

https://static001.geekbang.org/infoq/a3/a31dd11e80462e8952c716981d483e30.jpeg?x-oss-process=image/resize,w_416,h_234

JVM 系列之: 从汇编角度分析 NullCheck

用户头像
程序那些事 2020 年 8 月 6 日

之前我们在讲Virtual call的时候有提到,virtual call方法会根据传递的参数实例的不同而进行优化,从而优化成为classic call,从而提升执行效率。

https://static001.geekbang.org/infoq/78/788f5205e49fa98694d341bc43d64ad5.jpeg?x-oss-process=image/resize,w_416,h_234

JVM 系列之: 通过一个例子分析 JIT 的汇编代码

用户头像
程序那些事 2020 年 7 月 31 日

我们知道JIT会在JVM运行过程中,对热点代码进行优化,传说自然是传说,今天我们通过一个简单的例子来具体分析一下JIT到底是怎么进行优化的。

https://static001.geekbang.org/infoq/a3/a3f80d99b8c9e0d932a28385db97fc5e.jpeg?x-oss-process=image/resize,w_416,h_234

troubleshoot 之: 分析 OutOfMemoryError 异常

用户头像
程序那些事 2020 年 8 月 14 日

java.lang.OutOfMemoryError应该java应用程序中非常常见的一个的错误了。

https://static001.geekbang.org/infoq/9b/9b5f121b5b4ac9c260e1d2f5f226e006.jpeg?x-oss-process=image/resize,w_416,h_234

JVM 系列之:JIT 中的 Virtual Call 接口

用户头像
程序那些事 2020 年 8 月 4 日

上一篇文章我们讲解了Virtual Call的定义并举例分析了Virtual Call在父类和子类中的优化。

https://static001.geekbang.org/infoq/3e/3e49d3c8051edc11841a5c9913fceb3e.jpeg?x-oss-process=image/resize,w_416,h_234

JVM 系列之:JIT 中的 Virtual Call

用户头像
程序那些事 2020 年 8 月 3 日

什么是Virtual Call?Virtual Call在java中的实现是怎么样的?Virtual Call在JIT中有没有优化?

https://static001.geekbang.org/infoq/31/31753535b9afb8a8b4a742a5ff0153f5.jpeg?x-oss-process=image/resize,w_416,h_234

小师妹学 JVM 之:Dirty cards 和 PLAB

用户头像
程序那些事 2020 年 7 月 9 日

分代垃圾回收器在进行minor GC的时候会发生什么操作呢?有没有什么提高效率的手段呢?今天我们和小师妹一起来了解一下垃圾回收中的Dirty cards和PLAB

JIT_JIT资料文章-InfoQ写作平台