JAVA项目性能优化(一)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
网络IO
04
分布式系统网络等待是影响性能的重要方面。
05
依赖性能
数据库性能对有大量数据库读写的系统来说,是系统优化的核心。 依赖接口性能,是分布式系统性能的重要影响因素。
性能调优
实施建议
性能调优不要很早开始
性能调优不应该很早开始,过早开始很难取得效果,容易引 发其他问题。
重视编码规范
编码规范中的一些规则是用来避开性能方面的陷阱的。良好 的代码质量会使性能调优更加容易。
线程池的使用,缓存使用,基础组件的选择,SQL优化等 等。
设计优化
调整功能实现的框架,甚至调整业务流程。
参数调优
应用容器参数调整,中间件参数优化,数据库参数优化, JVM参数调整,操作系统参数调整
2 PART 工具
工具
测试工具
JMH
JMeter
工具
操作系统
ps top top -H -p xxx vmstat 10 free -m iostat netstat
重视框架设计
在系统设计之初,应该对系统性能有合理的预估,选择合适 的框架,对可能的瓶颈点留出扩展可能。
使用工具
性能调优时,优先使用合适的工具,找出系统的瓶颈点。优 先解决对系统影响最大的瓶颈点。
性能调优
测试发现问题
发现问题
利用监控系统,日志系统,发现可能问题点。 确认系统需要的性能指标,构建测试场景,使用工具测试,记录测试的性能指标。
工具
Java 诊断工具
jstack -l pid jstat -gcutil -t pid jmap -heap pid arthas jprofile MAT
3 PART 手段
4 PART 实践
2019
THANKS
Modern Technology Cool PowerPoint Template design by LITTLE ROSE.
性能调优
性能影响因素
01 02 03
CPU
应用需要大量计算时,CPU资源会成为系统的瓶颈。多线程上下文 切换,频繁Full GC也可能会造成CPU资源繁忙。
内存
Java 程序通过JVM分配内存。内存空间有限,当内存空间占满,对 象无法回收时或者有内存泄漏时,会导致内存溢出。
磁盘IO
使用异步日志框架,大吞吐量系统注意日志输出。
吞吐量
系统接口的TPS(每秒事务处理量),TPS体现了接口的性能, TPS越大,性能越好。并发数一定时,TPS与平均响应时间成 反比。
资源使用量
CPU 占用率,内存使用率,磁盘I/O,网络I/O等。确认资源 的分配是否合理,任何一项出现问题,都有毁灭性的后果。
其他指标
系统稳定性,并发数限制,可扩展性等。并发数增加时, TPS的变化范围。高可用系统出现性能问题时是否可平滑扩 展。 GC频率,Full GC时会暂定应用,占用大量CPU资源。
APM
APM系统如 PinPoint,SkyWalking 可以监控分布式系统的 性能和可用性。通过APM可以发现性能的瓶颈点,或者在 出现问题快速的定位问题。
基准性能测试
使用JMH来执行java的基准性能测试。
整合性能测试
使用性能测试工具(jmeter,loadRunner,ab),记录测 试结果。
2019
JAVA 项目性能优化
JAVA PROGRAM PERFORMACE TUNING
CONTENTS
概述
工具
手段
实践
1 PART 概念 除非必要,不要做性能调优;使用工具
性能调优
性能指标
性能指标
响应时间
响应时间是衡量系统性能的重要指标,响应时间越短,性能 越好。响应时间一般以毫秒为单位。实践中,会查看平均响 应时间,99%响应时间,最大响应时间,最小响应时间等。
性能调优
分析问题的步骤来自百度文库
分析问题
分析问题时,应该自下而上。首先确保依赖的外围系统不存在瓶颈,然后检查检查操作系统参数,JVM参数。
操作系统
CPU 内存 I/O 网络
JVM
垃圾回收 内存分配
应用层面
Java编程的问题 读写瓶颈 依赖组件特别是数据库
性能调优
处理问题的步骤
处理问题
处理问题,自上而下。
代码优化