性能优化工具

本文介绍了Java应用性能测试中的关注点与工具选择,并提出了多种优化手段,包括静态化、异步化、并行化等。同时,文章还探讨了不同应用场景下的软件架构优化策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、java应用

压测时常观察的内容及工具有(举例java应用)

    压测工具:jmeter

    内存的使用情况:mat,gc日志,vmstat

    IO情况:iostat

    网络情况:netstat

    热点代码:jprofile,btrace,jstack,jstat

    CPU情况:top      

优化的常见手段或模式

     静态化:动态数据和静态数据分离。

     异步化:使用异步化减少主流程中的非关键业务逻辑。

     并行化:使用多线程并发处理,缩短响应时间。

     内存优化:减少对象大小,减少对象创造,数据模型优化

     去重复运算:业务逻辑优化,或者使用缓存

     减少数据库操作:数据冗余,数据缓存等

     缩短数据库事务:短事务,异步化,最终一致性等方式可以考虑

     精简代码逻辑:去除冗余代码,诸如过度设计检查等代码。

     精简日志操作:日志大小要关注,注意IO上的瓶颈;日志太多,说明生成的string也会多,也增加了gc负担等等

结构型优化常见步骤

此部分介绍的内容,在很多网站架构变迁的文章中介绍过,这里通过图的方式展现出来。


每个阶段都有适用的软件架构,基于成本、建设复杂度、维护成本的考虑,不必强求一开始建设很完整的技术体系。


个人认为,性能是驱动应用体系研究的重要驱动力,可以通过下面应用结构演进看出来。


1、单应用时代常见瓶颈先发生在DB


2、单应用时代常见第一个解法是使用缓存(偏向应用级别缓存)


3、单应用时代常见第一个解法是独立缓存服务(集中式缓存,如memcache)



3、单应用集中式部署带来应用集群处理能力提升


4、单应用集中式部署部署后的DB瓶颈


5、单应用集中式部署部署后的DB瓶颈解法(数据库拆分、读写分离)




6、服务化拆分应对更大范围请求量

服务化集群部署模式




两个结构优化的案例

处理单点/网络瓶颈的可行方式


处理数据库连接池瓶颈的可行手段




总结:性能/应用优化的几个趋势


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值