Tagged: java

troubleshoot之:使用JFR分析性能问题

troubleshoot之:使用JFR分析性能问题

简介 java程序的性能问题分析是一个很困难的问题。尤其是对于一个非常复杂的程序来说,分析起来更是头疼。 还好JVM引入了JFR,可以通过JFR来监控和分析JVM的各种事件。通过这些事件的分析,我们可...

troubleshoot之:使用JFR解决内存泄露

troubleshoot之:使用JFR解决内存泄露

简介 虽然java有自动化的GC,但是还会有内存泄露的情况。当然java中的内存泄露跟C++中的泄露不同。 在C++中所有被分配的内存对象都需要要程序员手动释放。但是在java中并不需要这个过程,一切...

troubleshoot之:用control+break解决线程死锁问题

troubleshoot之:用control+break解决线程死锁问题

简介 如果我们在程序中遇到线程死锁的时候,该怎么去解决呢? 本文将会从一个实际的例子出发,一步一步的揭开java问题解决的面纱。 死锁的代码 写过java多线程程序的人应该都知道,多线程中一个很重要的...

JVM系列之:再谈java中的safepoint

JVM系列之:再谈java中的safepoint

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

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

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

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

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

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

简介 Volatile关键字对熟悉java多线程的朋友来说,应该很熟悉了。Volatile是JMM(Java Memory Model)的一个非常重要的关键词。通过是用Volatile可以实现禁止重排...

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

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

简介 上一篇文章我们讲解了Virtual Call的定义并举例分析了Virtual Call在父类和子类中的优化。 JIT对类可以进行优化,那么对于interface可不可以做同样的优化么? 一起来看...

JVM系列之:JIT中的Virtual Call

JVM系列之:JIT中的Virtual Call

简介 什么是Virtual Call?Virtual Call在java中的实现是怎么样的?Virtual Call在JIT中有没有优化? 所有的答案看完这篇文章就明白了。 Virtual Call和...