文章图片
文章图片
文章图片
文章图片
本文主要侧重于理论分析 , 我们从整体上看一下 Java 性能优化都有哪些可以遵循的规律 。 本文主讲理论 。 关于实践 , 后续的文章会用较多的案例来细化本文的知识点 , 适合反复思考和归纳 。
01
概述
性能优化根据优化的类别 , 分为业务优化和技术优化 。 业务优化产生的效果也是非常大的 , 但它属于产品和管理的范畴 。 同作为程序员 , 在平常工作中 , 我们面对的优化方式 , 主要是通过一系列的技术手段 , 来完成对既定的优化目标 。 这一系列的技术手段 , 我大体归纳为如图以下 7 类:
可以看到 , 优化方式集中在对计算资源和存储资源的规划上 。 优化方法中有多种用空间换时间的方式 , 但只照顾计算速度 , 而不考虑复杂性和空间问题 , 也是不可取的 。 我们要做的 , 就是在照顾性能的前提下 , 达到资源利用的最优状态 。
接下来 , 我简要介绍一下这7个优化方向 。 如果你感觉比较枯燥 , 那也没关系 , 我们本文的目的 , 就是让你的脑海里有一个总分的概念 , 以及对理论基础有一个整体的认识 。
02
复用优化
在写代码的时候 , 你会发现有很多重复的代码可以提取出来 , 做成公共的方法 。 这样 , 在下次用的时候 , 就不用再费劲写一遍了 。
这种思想就是复用 。 上面的描述是编码逻辑上的优化 , 对于数据存取来说 , 有同样的复用情况 。 无论是在生活中还是编码中 , 重复的事情一直在发生 , 如果没有复用 , 工作和生活就会比较累 。
在软件系统中 , 谈到数据复用 , 我们首先想到的就是缓冲和缓存 。 注意这两个词的区别 , 它们的意义是完全不同的 , 很多同学很容易搞混 , 在这里简单地介绍一下 。
缓冲(Buffer) , 常见于对数据的暂存 , 然后批量传输或者写入 。 多使用顺序方式 , 用来缓解不同设备之间频繁地、缓慢地随机写 , 缓冲主要针对的是写操作 。
缓存(Cache) , 常见于对已读取数据的复用 , 通过将它们缓存在相对高速的区域 , 缓存主要针对的是读操作 。
与之类似的 , 是对于对象的池化操作 , 比如数据库连接池、线程池等 , 在 Java 中使用得非常频繁 。 由于这些对象的创建和销毁成本都比较大 , 我们在使用之后 , 也会将这部分对象暂时存储 , 下次用的时候 , 就不用再走一遍耗时的初始化操作了 。
03
计算优化
并行执行
现在的 CPU 发展速度很快 , 绝大多数硬件 , 都是多核 。 要想加快某个任务的执行 , 最快最优的解决方式 , 就是让它并行执行 。 并行执行有以下三种模式 。
第一种模式是多机 , 采用负载均衡的方式 , 将流量或者大的计算拆分成多个部分 , 同时进行处理 。 比如 , Hadoop 通过 MapReduce 的方式 , 把任务打散 , 多机同时进行计算 。
- 酷睿处理器|解读i711800h和i712700h选哪个好?评测性能差距大吗?
- 电子商务|该怎样做好短视频SEO优化?短视频SEO优化有必要吗?
- AMD|RDNA3性能爆发!RX 7700系列即可灭掉万元级6900 XT显卡
- 小米|不止颠覆轻薄本性能!RedmiBook Pro 2022将搭载定制3.2K/90Hz视网膜屏
- motorola|骁龙888 Plus“白菜价”!摩托罗拉edge S30 1599起:同价位性能一骑绝尘
- 天玑9000|搭载天玑9000的oppo新旗舰性能不及预期,红米k50还值得期待吗
- 懂性能,选锐龙:开学电脑选 AMD 芯,明星爆品特惠秒杀
- TCL|杜伽K310白光限定款键盘——一个颜值及性能极佳的键盘
- steam|我的转行之路(Java开发从入门到放弃)之一:从培训班到就业
- 据此前消息|性能超越iPhone13Pro!曝荣耀Magic4系列国行版