`

关于性能优化

阅读更多
运动员追求更高,更快,更强,那么程序员追求更快,更短,更少。性能优化有很多种途径和层次。看到别人关于性能优化的总结总是下意识的打开看看,虽然所面对的业务场景都不一样,但基本路数都类似, 定位性能瓶颈,提出并实现解决方案,验证优化成果。
现摘录博客:https://yq.aliyun.com/articles/54004?&utm_campaign=sys&utm_medium=market&utm_source=edm_email&msctype=email&mscmsgid=3210116060800412531&

性能优化的两种模式

个人总结,性能优化整体上可以分为两类:单应用优化和结构型优化。

单应用优化,关注单系统瓶颈,通过解决单系统瓶颈提升性能。
结构型优化,通过改造链路结构和配比,进行整体性能的优化。

单应用优化常见步骤

优化基本思路(闭环)

    确定性能瓶颈/热点
    确定优化方案
    实施、反馈优化情况
确定性能瓶颈/热点的常见方法

性能压测:通过工具/人肉等方式量化运行时性能情况
业务/代码梳理:通过代码走读,发现资源消耗热点(牛B的人可以这么干);通过统计代码对资源的操作,量化代码对资源的消耗(比如一个业务操作会进行多少次数据库调用,会进行多少次服务运算等方式)
压测时常观察的内容及工具(举例java应用)

    压测工具:jmeter
    内存的使用情况:mat,gc日志,vmstat
    IO情况:iostat
    网络情况:netstat
    热点代码:jprofile,btrace,jstack,jstat
    CPU情况:top
优化的常见手段或模式

    静态化:动态数据和静态数据分离。
    异步化:使用异步化减少主流程中的非关键业务逻辑。
    并行化:使用多线程并发处理,缩短响应时间。
    内存优化:减少对象大小,减少对象创造,数据模型优化
    去重复运算:业务逻辑优化,或者使用缓存
    减少数据库操作:数据冗余,数据缓存等
    缩短数据库事务:短事务,异步化,最终一致性等方式可以考虑
    精简代码逻辑:去除冗余代码,诸如过度设计检查等代码。
    精简日志操作:日志大小要关注,注意IO上的瓶颈;日志太多,说明生成的string也会多,也增加了gc负担
等等

结构型优化常见步骤

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

每个阶段都有适用的软件架构,基于成本、建设复杂度、维护成本的考虑,不必强求一开始建设很完整的技术体系。
1、单应用时代常见瓶颈先发生在DB
2、单应用时代常见第一个解法是使用缓存(偏向应用级别缓存)
3、单应用时代常见第一个解法是独立缓存服务(集中式缓存,如memcache)
4、单应用集中式部署部署后的DB瓶颈
5、单应用集中式部署部署后的DB瓶颈解法(数据库拆分、读写分离)
6、服务化拆分应对更大范围请求量
总结:性能/应用优化的几个趋势
单应用---》多应用
集中化部署--》分布式部署--》单元化部署
单机房部署--》多机房部署--》异地多机房部署
单系统优化--》结构系统优化
分享到:
评论

相关推荐

    DB2 性能优化PDF

    DB2性能优化 DB2性能优化 DB2性能优化 DB2性能优化

    oracle性能优化技术内幕

    书中就多年以来关于性能优化人们一直认为是正确的某些错误观点和方法提出了批判,令人信服地证明了这些观点和方法的荒诞,提出了较为正确的观点和方法。 本书可供具有一定基础的Oracle数据库管理人员和应用编程人员...

    Oracle性能优化技术内幕

    本书讲述Oracle 性能优化技术。书中对给出的每一种优化方法和措施都从...年以来关于性能优化人们一直认为是正确的某些错误观点和方法提出了批判,令人信服地证明了这些观 点和方法的荒诞,提出了较为正确的观点和方法。

    linux性能优化和分析.ppt

    很高兴能有这样的机会,把我自己多年工作中对服务器硬件、软件方面的性能分析的经验和体会,以及性能优化的经验和... 本文涉及的内容基于Gnu/Linux系统平台,但关于性能优化分析和优化的思路也能适用于其他系统平台。

    jpa性能优化ppt

    关于性能优化的ppt,我觉得总结还真不错。

    EBS性能调优之全面挖掘_V4.2(ebs性能优化、oracle性能优化、linux性能优化)

    数据库优化包括:实例的性能优化和SQL语句的性能优化,实例优化和sql优化均可以通过AWR报告来分析并作出优化方案。 这篇文档描述了如何调查EBS系统性能下降原因、如何使用和理解AWR报告、分别阐述了数据库层/应用层/...

    大型网站性能优化实战

    具体内容包括:基于用户体验的性能优化要素、前端性能优化实战、网站性能分析、服务端性能优化、TCP优化、DNS优化、CDN优化、大型网站性能监控体系、大型网站容量评估、高性能系统架构模式、大促保障体系、数据分析...

    oracle数据库性能优化.pdf

    oracle数据库性能优化.pdforacle数据库性能优化.pdforacle数据库性能优化.pdforacle数据库性能优化.pdforacle数据库性能优化.pdf

    ORACLE SQL性能优化系列

    ORACLE SQL性能优化系列 ORACLE SQL性能优化系列 ORACLE SQL性能优化系列

    java性能优化java性能优化

    java性能优化介绍java性能优化方面的好的书籍,希望大家下载

    阿里巴巴Java性能调优实战(2021-2022华山版)+Java架构核心宝典+性能优化手册100技巧.rar

    性能优化手册是一套java性能学习研究小技巧,包含内容:Java性能优化、JVM性能优化、服务器性能优化、数据库性能优化、前端性能优化等。 内容包括但不限于: String 性能优化的 3 个小技巧 HashMap 7 种遍历方式...

    mysql 性能优化

    mysql 性能优化mysql 性能优化mysql 性能优化mysql 性能优化mysql 性能优化mysql 性能优化mysql 性能优化mysql 性能优化mysql 性能优化mysql 性能优化mysql 性能优化mysql 性能优化mysql 性能优化mysql 性能优化...

    Android性能优化.pdf

    Android性能优化:ANR问题解析 crash监控方案 启动速度与执行效率优化 内存优化 耗电优化 网络传输与数据存储优化 APK大小优化

    threejs性能优化与GPU优化.md

    threejs性能优化与GPU优化

    前端性能优化与实践.zip

    前端性能优化与实践.zip

    SQLServer性能优化与管理的艺术

    资源名称:SQL Server性能优化与管理的艺术内容简介:本书共15章,分为三部分,第一部分(第1-2章)为概述部分,阐述SQLServer方面的“性能”及相关概念。并给出常规的性能及性能相关的问题侦测的“方法论”,读者...

    性能优化-网站性能监测与优化

    Web前端性能优化数据 性能优化Web前端性能优化数据 性能优化Web前端性能优化数据 性能优化Web前端性能优化数据 性能优化

    系统性能分析与优化以及介绍常见的分析及监控系统

    很高兴能有这样的机会,把我自己多年工作中对服务器硬件、软件方面的性能分析的经验和体会,以及性能优化的经验和... 本文涉及的内容基于Gnu/Linux系统平台,但关于性能优化分析和优化的思路也能适用于其他系统平台。

Global site tag (gtag.js) - Google Analytics