|
功能优化的价值 从上图能够看出几个长处: ◆ 本钱降低 ◆ 稳定性提高 ◆ 用户体会体会提高 功能优化的缺陷有:保护本钱添加,代码可能变杂乱,构造可能变杂乱,技能栈可能变杂乱。 功能优化的两种形式 自己总结,功能优化全体上能够分为两类:单运用优化和构造型优化。 ◆ 单运用优化,重视单系统瓶颈,经过处理单系统瓶颈提高功能。 ◆ 构造型优化,经过改造链路构造和配比,进行全体功能的优化。 单运用优化多见过程 优化基本思路(闭环): 1.断定功能瓶颈/热门; 2.断定优化方案; 3.施行、反馈优化状况。 断定功能瓶颈/热门的多见方法: 1.功能压测:经过工具/人肉等方法,量化运行时的功能状况。 2.业务/代码整理:经过代码走读,发现资本耗费热门(牛B的人能够这么干);经过计算代码对资本的操作,量化代码对资本的耗费(比方一个业务操作会进行多少次数据库调用,会进行多少次效劳运算等方法)。 压测经常调查的内容及工具有(举例Java运用): 1.压测工具:jmeter 2.内存的运用状况:mat,gc日志,vmstat 3.IO状况:iostat 4.网络状况:netstat 5.热门代码:jprofile,btrace,jstack,jstat 6.CPU状况:top 优化的多见手法或形式: 1.静态化:动态数据和静态数据别离。 2.异步化:运用异步化削减主流程中的非关键业务逻辑。 3.并行化:运用多线程并发处理,缩短呼应时刻。 4.内存优化:削减目标巨细,削减目标发明,数据模型优化。 5.去重复运算:业务逻辑优化,或许运用缓存。 6.削减数据库操作:数据冗余,数据缓存等。 7.缩短数据库业务:短业务,异步化,终究一致性等方法能够考虑。 8.精简代码逻辑:去掉冗余代码,比如过度规划查看等代码。 9.精简日志操作:日志巨细要重视,留意IO上的瓶颈;日志太多,阐明生成的string也会多,也添加了gc担负。 等等。 构造型优化多见过程 此有些介绍的内容,在许多网站架构变迁的文章中介绍过,这儿经过图的方法展示出来。 每个阶段都有适用的软件架构,根据本钱、建造杂乱度、保护本钱的考虑,不用强求一开始建造很完好的技能系统。 自己认为,功能是驱动运用系统研讨的主要驱动力,能够经过下面运用构造演进看出来。 1.单运用年代多见瓶颈先发生在DB。 2.单运用年代多见第一个解法是运用缓存(倾向运用等级缓存)。 3.单运用年代多见第一个解法是独立缓存效劳(集中式缓存,如memcache)。 4.单运用集中式布置带来运用集群处理才能提高。 5.单运用集中式布置布置后的DB瓶颈。 6.单运用集中式布置布置后的DB瓶颈解法(数据库拆分、读写别离)。 7.效劳化拆分应对更大规模恳求量。 8.效劳化集群布置形式。 两个构造优化的事例 ◆ 处理单点/网络瓶颈的可行方法 ◆ 处理数据库连接池瓶颈的可行手法 总结:功能/运用优化的几个趋势
|