如何让Java应用程序运行是一回事,但让他们跑得快就是另外一回事了。在面对对象的环境中,性能问题就像来势凶猛的野兽。但JVM的复杂性将性能调整的复杂程度增加了一个级别。这里Refcard涵盖了JVM internals、class loading(Java8中更新以映射最新的元空间)、垃圾回收、故障诊断、检测、并发性,等等。
当前Java是目前软件开发领域中使用最广泛的编程语言之一。Java应用程序在许多垂直领域(银行、电信、医疗保健等)中都有广泛使用。Refcard的目的是,帮助开发者通过专注于JVM内部,性能调整原则和最佳实践,以及利用现有监测和故障诊断工具,来提升应用程序在商业环境中的性能。
它能以不同的方式定义“optimal performance(最佳性能)”,但基本要素是:Java程序在业务响应时间要求内执行计算任务的能力,程序在高容量下执行业务功能的能力,并具有可靠性高和延迟低的特点。有时,数字本身变得模式化:对于一些大型网站,优秀的页面响应时间应该在500ms以下。在适当的时候,Refcard包括目标数字。但在大多数情况下,您需要根据业务需求和现有的性能基准自己决定这些。
俗话说:“授人以鱼不如授人以渔”。在这分享这份性能调优实战手册给有需要的小伙伴,你将掌握系统的性能优化方法论,对从性能优化视角下深入理解 Java 常见的中间件的设计,对设计出合理地性能优化方案,对大家的学习进阶会有较大地帮助!
由于篇幅原因,本文只展示了目录和内容截图
性能调优实战手册:概念篇
如何制定性能调优标准及策略?
性能调优实战:设计模式篇
设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。如果你要想在 Java 界做得风生水起,游刃有余,设计模式必不可少,更不可少的更是设计模式的优化技巧。这个模块将结合一些复杂的应用场景,解析设计优化案例。
性能调优实战:Java编程篇
Java 编码过程中如何通过一些常见的优化代码提高程序的可靠性和安全性,利用代码实例进行说明不同方式的编码会有哪些弊端与优势!
性能调优实战:多线程篇
如何优化多线程上下文切换?如何用协程来优化多线程业务?这些问题都会在这个模块重点讲解。
性能调优实战:JVM性能监测及调优篇
随着互联网发展,Java 应用程序对高并发,高可用,快速响应等有较为严格的要求,这些其实都与 JVM 有关,互联网大厂对并发,性能的要求也越来越高。进行 JVM 性能调优,提升 Java 应用程序性能变得越来越重要,JVM性能调优旨在如何使用较少的内存获得较高的吞吐。这个模块重点和大家分享 JVM 性能调优相关的经验,Java 对象的创建和回收、内存分配等问题。
性能调优实战:数据库性能调优篇
以实际工作案例分享慢查询、工作中经典问题的 SQL 优化,常用工具以辅助验证与定位,了解索引的应用(暂不深入分析索引的实现),可以提高性能的缓冲应用。这个模块会重点解析一些数据库的常用调优方法。
性能调优实战手册内容展示
概念篇
设计模式调优篇
Java编程调优篇
多线程性能调优篇
JVM性能监测及调优篇
数据库性能调优篇
总结
作为一个程序员,性能优化是常有的事情,不管是桌面应用还是web应用,不管是前端还是后端,不管是单点应用还是分布式系统。本文从以下几个方面来思考这个问题:性能优化的一般性原则,性能优化的层次,性能优化的通用方法。所以说学习性能优化对一个Java程序员而言是一门必修课,也是在职业生涯进阶必不可少的一个技能!