<>试读

 

       C++我们都知道需要手动的去完成垃圾回收,java有垃圾回收机制难道就不要关心了吗?如果真是那样就不会有那么多java.lang.OutOfMemoryError异常了。
       不知道前端时间你准备换工作没有,但从面试准备方向,你就知道本书的重要性,每次面试都会遇到你对jvm了解吗、做过什么优化吗,你可以轻松的从<< Java 性能优化权威指南>>找到答案,当然工作中如果你发现你的系统运行缓慢、出现内存溢出,了解这些也是非常有帮助的。
       之前做过一个消息服务系统,很奇怪的是没运行一两个月就会挂掉,检查了代码也没什么问题,后来怀疑到时h2数据库问题,就换成mysql了,结果还是不行,实在查不到原因,最后就是通过本书的VisualVM监控程序找到了原因,从VisualVM上检查到有服务连接消息服务异常,导致不停的启动新的线程,导致线程资源用完。
          试读的第四章主要讲解了jvm性能监控,监控的前提首先是要对jvm有所了解,jvm分为年轻代、年老代、持久代。年轻代有分为 1个Eden区和2个Survivor区,为什么jvm有分代机制、以及每个分代采用如何的垃圾回收机制,都可以从书中了解到答案。
         以前也了解 Minor GC和 Full GC,但是没有关心过它们的频率,受到了点启发,回收频率的大小也会影响到Java性能,以后会更关心这些指标。
         看到4.4  类加载的时候想起了一个面试,当时聊到maven,说是因为项目用的jar包比较多,有自己开发的,在发布的时候,加上maven自动关联的jar包邮好几十个,服务启动直接报内存溢出,问怎么办,原来考察的就是这啊。
        最后又讲了VisualVM等工具的使用,之前也用过,但是并没细致的去看,这里更加深了影响。
         不会Java性能优化不是一个好开发,性能优化更是一门艺术,让我们的程序更流畅,不知道你听说过木桶原则没有,每个地方可能都是性能的瓶颈,所以我们要关心开发的点点滴滴,一个subString有时就能让你的服务挂掉。

 

你可能感兴趣的:(java性能优化)