随笔分类 - 性能调优
性能调优相关文章
摘要:简介 使用面向对象的编程语言的好处就是,虽然没有女朋友,但是仍然可以new对象出来。Java是面向对象的编程语言,我们天天都在使用java来new对象,但估计很少有人知道new出来的对象到底长的什么样子,是美是丑到底符不符合我们的要去? 对于普通的java程序员来说,可能从来没有考虑过java中对象
阅读全文
摘要:简介 作为一个程序员,经常会为如何定位java程序的问题或者去调优JVM性能而苦恼不已。也许你听过一些java的profile的强力工具,比如jprofile。但是这些工具大部分都是要收费的,对于我们个人程序员来说十分不友好。 其实JDK已经自带了很多优秀的性能调优工具,你可以在JAVA_HOME/
阅读全文
摘要:简介 在之前的文章中,我们介绍了JDK14中jstat工具的使用,本文我们再深入探讨一下jstack工具的使用。 jstack工具主要用来打印java堆栈信息,主要是java的class名字,方法名,字节码索引,行数等信息。 更多精彩内容且看: 区块链从入门到放弃系列教程-涵盖密码学,超级账本,以太
阅读全文
摘要:简介 我们在开发java项目的时候,或多或少都会去用到Java的性能管理工具。有时候是为了提升应用程序的性能,有时候是为了查找java应用程序的bug。 性能监控和调试工具在英文中叫做profile tool,提起这种工具大家可能会想到一些非常出名的jprofile等收费工具,其实JDK也自带了一些
阅读全文
摘要:AppCDS的全称是Application Class-Data Sharing。主要是用来在不同的JVM中共享Class-Data信息,从而提升应用程序的启动速度。
通常来说,如果要执行class字节码,JVM需要执行下面的一些步骤:给定一个类的名字,JVM需要从磁盘上面找到这个文件,加载,并验证字节码,最后将它加载进来。
如果JVM启动的时候需要加载成百上千个class,那么需要的就不是一个小数目了。
对于打包好的jar包来说,只要jar的内容不变,那么jar包中的类的数据始终是相同的。JVM在启动时候每次都会运行相同的加载步骤。
阅读全文
摘要:Java Flight Recorder(JFR)是JVM的诊断和性能分析工具。它可以收集有关JVM以及在其上运行的Java应用程序的数据。JFR是集成到JVM中的,所以JFR对JVM的性能影响非常小,我们可以放心的使用它。
一般来说,在使用默认配置的时候,性能影响要小于1%。
JFR的历史很久远了。早在Oracle2008年收购BEA的时候就有了。JFR一般和JMC(Java Mission Control)协同工作。
JFR是一个基于事件的低开销的分析引擎,具有高性能的后端,可以以二进制格式编写事件,而JMC是一个GUI工具,用于检查JFR创建的数据文件。
这些工具最早是在BEA的JRockit JVM中出现的,最后被移植到了Oracle JDK。最开始JFR是商用版本,但是在JDK11的时候,JFR和JMC完全开源了,这意味着我们在非商用的情况下也可以使用了。
而在今天的JDK 14中,引入了一个新的JFR特性叫做JFR Event Streaming,我们将在本文中详细讲解。
阅读全文
摘要:[toc] 简介 jcmd是JDK自带的调试工具,具有非常强大的功能。jcmd是JDK7中正式引入的,有了jcmd,完全可以替换很多常用的其他工具,比如jstak和jmap。 jcmd可以将具体的诊断命令发送给JVM。为了安全起见,使用jcmd的用户必须跟运行的java程序具有同样的用户和用户组。
阅读全文
摘要:在还没有IDE的时代,高手们还是通过记事本来编程。那时候能够写程序的都是牛人。能把程序写得好的更是牛人中的牛人。
秃头大叔的程序员形象就是在那个时候建立起来的。
还记得十几年前的那一个春天,微风不动,太阳都羞红了脸。因为那时候的我还在一个javac,一个java的编译,运行着java程序。
虽然效率低下,但是看着我跑起来的一个又一个hello world,心里充满了欢喜。
惊喜过后便是失落,java实在太难用了太复杂了,我还是回去写C语言吧。
阅读全文