JVM之GC以及优化

过完年之后感觉人生荒废 说好的不断学习无奈老婆家的习俗太多 什么办新郎官饭什么的赶场太多 根本没时间 都是开车下车吃饭看电影回家洗漱后已经是大半夜…哎呀 不是码农不懂我的苦 我说我想再自己钻研一下自己再学习学习探索探索 无奈人家不肯啊

现在趁着人家睡觉的时候偷偷跑出来 打开笔记本 写一篇博文也算是不负内心的一种行为吧 姑且如此

Java对比C/C++而言,JVM的存在可谓是一个比较良心的产物,对内存的管理相较于C/C++的手动申请->释放而言是比较友好的.开习惯了自动挡再回去开手动挡肯定是十分不适应的,毕竟时代在进步.然而JVM的这一举措方便了开发人员的同时也带来一些问题,如果对JVM的GC不熟悉或者对JVM的运行原理不熟悉的话,想当然地认为GC是万金油会引发很多问题,性能始终上不去,拼命用BTrace查找慢代码,找到了却又无从下手…

JVM我之前有一篇博文,其中简述了一下JMM,分代信息和内存划分,也简单写了一下GC.
在《对于JVM的一些理解》之中有简单介绍.
http://blog.csdn.net/unscdf117/article/details/78692476

对于GC而言光靠猜测肯定是不行的,如果想要对程序进行优化必须去读GC日志信息.理解GC日志是Java开发人员的必备技能之一.先设置一下GC日志的输出路径,我比较懒所以就直接在本机上设置了,设置方式如下图
GC日志路径
此时会在对应路径上生成一个日志文件专门记录GC日志.
我使用IDEA进行开发,在IDEA当中也有JVM的运行参数可以设置,在Run/Debug Configurations中就可以设置 如图:
JVM之GC以及优化_第1张图片
运行之后也会产生对应的日志文件.

打开GC日志看看:
GC日志GC级别
最左边的数字是JVM启动之后GC事件的发生的时间戳,后面有GC和FullGC的一些区别,这里GC括号内定位失败 - - , FullGC是MetaData GC,这里是我的锅,我是使用默认的JDK配置,这是我的锅…

先写到这….我被骂了 哈哈哈哈

你可能感兴趣的:(无聊写代码)