
性能调优
flydean程序那些事
懂程序更懂你!微信公众号:程序那些事 个人主页:www.flydean.com 最通俗的解读,最深刻的干货,最简洁的教程,众多你不知道的小技巧,尽在程序那些事!
展开
-
终于我用JOL打破了你对java对象的所有想象
使用面向对象的编程语言的好处就是,虽然没有女朋友,但是仍然可以new对象出来。Java是面向对象的编程语言,我们天天都在使用java来new对象,但估计很少有人知道new出来的对象到底长的什么样子,是美是丑到底符不符合我们的要去?对于普通的java程序员来说,可能从来没有考虑过java中对象的问题,不懂这些也可以写好代码。但是对于一个有钻研精神的极客来说,肯定会想多一些,再多一些,java中的对象到底是什么样的。原创 2020-06-06 08:51:26 · 13443 阅读 · 9 评论 -
JDK14性能管理工具:jmap和jhat使用介绍
我们在写代码的过程中,经常会遇到内存泄露的问题,比如某个集合中的对象没有被回收,或者内存出现不明原因的增长。这些都是需要我们来定位的问题,我们可以使用jmap和jhat来对java程序中的内存对象进行分析。jmap(Java Memory Map)是JDK自带的工具,用来将某个java程序的内存中的信息打印或者输出到文件中,然后通过jhat(Java Heap Analysis Tool)工具对输出的文件进行分析,从而找到可能出现的问题。原创 2020-06-02 07:05:22 · 7853 阅读 · 7 评论 -
JDK14性能管理工具:jstat使用介绍
作为一个程序员,经常会为如何定位java程序的问题或者去调优JVM性能而苦恼不已。也许你听过一些java的profile的强力工具,比如jprofile。但是这些工具大部分都是要收费的,对于我们个人程序员来说十分不友好。其实JDK已经自带了很多优秀的性能调优工具,你可以在JAVA_HOME/bin中找到他们。原创 2020-05-31 07:25:18 · 8115 阅读 · 2 评论 -
JDK14性能管理工具:jstack使用介绍
在之前的文章中,我们介绍了JDK14中jstat工具的使用,本文我们再深入探讨一下jstack工具的使用。jstack工具主要用来打印java堆栈信息,主要是java的class名字,方法名,字节码索引,行数等信息。原创 2020-05-30 08:12:15 · 8128 阅读 · 6 评论 -
JDK14性能管理工具:Jconsole详解
我们在开发java项目的时候,或多或少都会去用到Java的性能管理工具。有时候是为了提升应用程序的性能,有时候是为了查找java应用程序的bug。性能监控和调试工具在英文中叫做profile tool,提起这种工具大家可能会想到一些非常出名的jprofile等收费工具,其实JDK也自带了一些性能调试工具,比如JMC和Jconsole。JMC现在已经和JDK的版本独立出来了,详情请参考我之前的文章:[JDK 14的新特性:JFR,JMC和JFR事件流](http://www.flydean.com/j原创 2020-05-29 06:13:36 · 8348 阅读 · 6 评论 -
JDK9的新特性:JVM的xlog
在java程序中,我们通过日志来定位和发现项目中可能出现的问题。在现代java项目中,我们使用log4j或者slf4j,Logback等日志记录框架来处理日志问题。JVM是java程序运行的基础,JVM中各种事件比如:GC,class loading,JPMS,heap,thread等等其实都可以有日志来记录。通过这些日志,我们可以监控JVM中的事件,并可以依次来对java应用程序进行调优。在JDK9中引入的Xlog日志服务就是为这个目的而创建的。通过xlog,JDK将JVM中的各种事件统一起来原创 2020-05-23 07:01:12 · 8734 阅读 · 5 评论 -
JDK13的新特性:AppCDS详解
AppCDS的全称是Application Class-Data Sharing。主要是用来在不同的JVM中共享Class-Data信息,从而提升应用程序的启动速度。通常来说,如果要执行class字节码,JVM需要执行下面的一些步骤:给定一个类的名字,JVM需要从磁盘上面找到这个文件,加载,并验证字节码,最后将它加载进来。如果JVM启动的时候需要加载成百上千个class,那么需要的就不是一个小数目了。对于打包好的jar包来说,只要jar的内容不变,那么jar包中的类的数据始终是相同的。JVM在启原创 2020-05-12 07:09:15 · 9366 阅读 · 1 评论