大家好,我是飘渺!
每个公司都要求程序员写出性能良好、维护性强的代码,各种高端职位的任职要求也会把性能优化技能作为必选要求之一。
当业务系统重构时,以及各种互联网大促前,也都期望系统的性能和吞吐量变得更好。
近几年,很多企业从粗放式的系统设计和实现转成更为精细化的开发和优化系统。
特斯拉CEO马斯克收购推特后,亲自与推特员工在深夜讨论分布式缓存方案,以减少网络调用,也同员工讨论如何减少渲染首页带来的后台近千次的微服务调用。
在一位资深Java研发架构工程师从业的20多年里,遇到过多次类似提升系统性能、减少使用主机数量的挑战。
- 在京东工作时,通过代码优化,电商基础交易系统某接口的性能提高了40%,吞吐量也相应地提高了。
- 在物联网企业,也通过Java性能优化,使得企业的微服务系统每年节省了近百万元的主机费用,并且让物联云更快地响应设备命令。
- 更早的时候作为惠普架构师,在移动集团的大型机机房呆了2个月,优化了公司自研的消息系统的设计方案和代码,使得该方案的性能和可靠性接近一流消息中间件。
对于程序员和架构师来说,Java系统的性能优化是一个超常规的挑战。
这是因为Java语言和Java运行平台,以及Java生态的复杂性决定了Java系统的性能优化不再是简单的升级配置或者简单的 "空间换时间”的技术实现,这涉及Java的各种知识点,如编写高性能Java代码,Java代码的编译优化,运行时刻的JIT优化,JVM的内存管理优化等,还包括如何使用高性能的第三方开源工具,以及微服务和分布式系统设计需要关注的性能事项。
《高性能Java系统权威指南》一书从高性能、易维护、代码增强,以及在微服务系统中编写Java代码的角度来描述如何实现高性能Java系统。书中的大部分例子都是作者从事Java开发20年来,在头部IT企业的高并发系统中摘录而来的,极具参考意义。
如果你想要学习如何用Java设计出高性能、高并发、高可用的系统,那么这本书绝对值得一看!
内容简介
本书介绍了Java系统性能优化的方方面面,涉及高质量代码的编写、性能优化技巧、高性能第三方工具的使用,以及Java自身的编译优化、JIT优化和JVM优化。
本书的风格偏实战,读者可以下载书中的示例代码并运行测试。
读者可以从任意一章开始阅读,掌握性能优化知识为公司的系统所用。
本书分为5部分,共10章。
- 第1部分是第1章到第5章,第1章通过一个不超过10行的代码优化示例介绍如何对Java系统进行优化,如何使用JMH验证性能优化;第2章和第3章介绍JDK的核心类String、Number和并发包;第4章通过20多个优化技巧来说明Java性能优化的各种方法;第5章介绍了常用的高性能工具,如Caffeine、Jackson、HikariCP,并对其高性能的原因做了一定的源码解析。
- 第2部分是第6章,这部分强调编写易于阅读的代码,会从代码分解、面向对象、注释三方面进行讲解。容易阅读的代码是系统性能优化的前提。代码不容易被看懂,系统优化或者系统重构就非常困难。
- 第3部分是第7章,介绍Java编译和JIT优化。JIT优化对Java系统运行有深刻的影响,本章系统介绍了Java编译、JIT编译器、代码缓存、内联等知识。
- 第4部分是第8章,包含30多个具有“坏味道”的代码片段,读者可以放松身心,尝试优化代码。读者可以直接跳到这一章先尝试一下是否能改良这些具有“坏味道”的代码片段。
- 第5部分是第9章和第10章,第9章介绍Java字节码和ASM,用于运行时增强Java系统;第10章介绍JVM内存管理,并提供了内存使用的建议。
作者简介
李家智,从事Java研发和架构工作22年,曾在亚信、中国HP等IT企业从事BOSS系统和计费系统的研发工作,曾在网易、京东(T8)从事基础电商交易系统的性能优化工作,也曾在斯坦福教授李飞飞的AI创业公司担任物联云技术总监,现任海尔优家物联云架构师。工作中涉及的大部分系统都是公司高价值核心系统,具备高性能、高并发、高可用、高复杂业务度的四高特点。
工作之余,热爱技术分享,热爱开源,拥有3个star数超千的开源软件,以闲大赋为昵称开源了高性能的Beetl和BeetlSQL,得到国内广泛应用和赞誉。
送书活动