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

白色玫瑰 程序猿

时间: 2023-05-22 阅读: 1 字数:2256

{}
性能优化的七类技术手段 性能优化分为,业务优化和技术优化。业务优化一般属于产品和管理的范畴,作为后端开发,一般应有技术优化。 技术优化一般有七类技术手段。 性能优化的重点是在照顾性能的前提下,达到资源...

性能优化的七类技术手段

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

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

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),能够显著提高效率,这是典型的对结果集的优化。

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

原文地址:https://blog.csdn.net/weixin_51484460/article/details/121895837?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522168474995516800188548878%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=168474995516800188548878&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_ecpm_v1~rank_v31_ecpm-3-121895837-null-null.142^v87^control_2,239^v2^insert_chatgpt&utm_term=java%E4%BC%98%E5%8C%96

本文章网址:https://www.sjxi.cn/detil/320b81ed858d49aeb64b2417acc7f796

最新评论

当前未登陆哦
登陆后才可评论哦

湘ICP备2021009447号

×

(穷逼博主)在线接单

QQ: 1164453243

邮箱: abcdsjx@126.com

前端项目代做
前后端分离
Python 爬虫脚本
Java 后台开发
各种脚本编写
服务器搭建
个人博客搭建
Web 应用开发
Chrome 插件编写
Bug 修复