Java性能优化学习2:性能优化切入点(上)

举报
bdi洲 发表于 2022/05/19 23:34:23 2022/05/19
【摘要】 性能优化的七类技术手段 性能优化分为,业务优化和技术优化。业务优化一般属于产品和管理的范畴,作为后端开发,一般应有技术优化。 技术优化一般有七类技术手段。 性能优化的重点是在照顾性能的前提下,达到资源...

性能优化的七类技术手段

性能优化分为,业务优化和技术优化。业务优化一般属于产品和管理的范畴,作为后端开发,一般应有技术优化。
技术优化一般有七类技术手段。

性能优化的重点是在照顾性能的前提下,达到资源利用的最优状态。

1、复用优化

写代码的时候,一般一个方法函数用的多的话,我们就会设置成公共的方法,这就是复用的意思,以后直接调用就可以了。

那么复用的思想在优化中,可以使用为:缓冲和缓存。

缓冲(Buffer),常见于对数据的暂存,然后批量传输或者写入。多使用顺序方式,用来缓解不同设备之间频繁地、缓慢地随机写,缓冲主要针对的是写操作。

缓存(Cache),常见于对已读取数据的复用,通过将它们缓存在相对高速的区域,缓存主要针对的是读操作。

类似的,也有对于对象的池化操作,比如数据库连接池、线程池等,在 Java 中使用得非常频繁。由于这些对象的创建和销毁成本都比较大,我们在使用之后,也会将这部分对象暂时存储,下次用的时候,就不用再走一遍耗时的初始化操作了。

在这里插入图片描述

2、计算优化

(1)并行执行

①多机集群:采用负载均衡的方式,将流量或者计算拆分多个部分,比如说hadoop、mapreduce。

②采用多进程,比如说Nginx,采用NIO编程模型,Master统一管理Worker进程,然后Worker进程进行真正的请求代理,这也能很好的利用硬件的多个CPU。

③使用多线程,例如:Netty,Reactor编程模型,NIO等等。例如Go,有更加轻量的:协程,但目前在java中协程并不是十分成熟。

(2)同步-》异步
异步的编程方式可以支持横向扩容,缓解瞬时压力。

(3)惰性加载
采用一些比较好的设计模式来优化业务模块,比如单例模式,代理模式等等。在Swing窗口的时候,如果要显示比较多的图片,就可以先加载一个占位符,然后通过后台线程慢慢加载所需要的资源,这就可以避免窗口的僵死。

3、结果集优化

都知道 XML 的表现形式是非常好的,那为什么还有 JSON 呢?除了书写要简单一些,一个重要的原因就是它的体积变小了,传输效率和解析效率变高了,像 Google 的 Protobuf,体积就更小了一些。虽然可读性降低,但在一些高并发场景下(如 RPC),能够显著提高效率,这是典型的对结果集的优化。

注:文章学习内容来源网络,侵权删。

文章来源: blog.csdn.net,作者:洲的学习笔记,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/weixin_51484460/article/details/121895837

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。