平常如何对你的 Java 程序进行调优?
2021-05-30 11:03
标签:系统版本 alt 互联网 话题 出现 版本升级 code 新特性 性能调优 Java 应用性能优化是一个老生常谈的话题,典型的性能问题如页面响应慢、接口超时,服务器负载高、并发数低,数据库频繁死锁等。 尤其是在“糙快猛”的互联网开发模式大行其道的今天,随着系统访问量的日益增加和代码的臃肿,各种性能问题开始纷至沓来。 Java 应用性能的瓶颈点非常多,比如磁盘、内存、网络 I/O 等系统因素,Java 应用代码,JVM GC,数据库,缓存等。 笔者根据个人经验,将 Java 性能优化分为 4 个层级:应用层、数据库层、框架层、JVM 层 性能调优同样遵循 2-8 原则,80%的性能问题是由 20%的代码产生的,因此优化关键代码事半功倍。 同时,对性能的优化要做到按需优化,过度优化可能引入更多问题。 对于 Java 性能优化,不仅要理解系统架构、应用代码,同样需要关注 JVM 层甚至操作系统底层。 总结起来主要可以从以下几点进行考虑: 1)基础性能的调优 这里的基础性能指的是硬件层级或者操作系统层级的升级优化,比如网络调优,操作系统版本升级,硬件设备优化等。 比如 F5 的使用和 SDD 硬盘的引入,包括新版本 Linux 在 NIO 方面的升级,都可以极大的促进应用的性能提升; 2)数据库性能优化 包括常见的事务拆分,索引调优,SQL 优化,NoSQL 引入等。 比如在事务拆分时引入异步化处理,最终达到一致性等做法的引入,包括在针对具体场景引入的各类 NoSQL 数据库,都可以大大缓解传统数据库在高并发下的不足; 3)应用架构优化 引入一些新的计算或者存储框架,利用新特性解决原有集群计算性能瓶颈等; 或者引入分布式策略,在计算和存储进行水平化,包括提前计算预处理等,利用典型的空间换时间的做法等; 都可以在一定程度上降低系统负载; 4)业务层面的优化 技术并不是提升系统性能的唯一手段,在很多出现性能问题的场景中,其实可以看到很大一部分都是因为特殊的业务场景引起的。 如果能在业务上进行规避或者调整,其实往往是最有效的。 平常如何对你的 Java 程序进行调优? 标签:系统版本 alt 互联网 话题 出现 版本升级 code 新特性 性能调优 原文地址:https://www.cnblogs.com/z-x-f/p/14750284.html
下一篇:老师不讲的C语言知识