大宝(sodme) 23 ?四大资源:Cpu,内存,带宽,数据库?关注点:极限、趋势、分布、突变?目标:预测突变,挑战极限,管理风险?日常开发需要注重架构的性能(功夫在平时) ?关键时刻需要注重细节的性能(临危受命) ?构建顺序:从宏观到具体,从架构到代码行 4 ?设定产品的最低性能目标并长期关注?设定可控的重复观察环境:机器人?测试开关?外服?自动化的性能定位、优化效果提取、优化任务提醒及分配:优化方法、结果及工具的完全可控?自动化性能监控报警:IM,手机,邮件,GMTOOLS 5 ?诊断:性能=规模*单次开销?步骤:定位?规划、评估、迭代实施?观测?回归?操作:架构优化,算法优化,清除无用,清除冗余?最高性能的优化是直接清除相关逻辑(不过往往不可能),最有效的优化往往是大架构的优化;难就难在如何在最高和最有效之间作权衡,下准药很重要 6 ?IO操作:IO操作异步化、线程化?数据结构与算法:排序、查找性能?冗余数据结构?重复计算:缓存结果?即时计算:提前准备……?哪些你知道?哪些你做了? 7 ?理清系统总体逻辑架构?建立细节监控框架?对性能消耗点按绝对比、性价比等进行排名?按排名从大到小考虑优化方案 8 ?自己动手or 借助外力?Cpu统计(时间):时间函数(毫秒级),帧计数?内存统计:new/delete的重载,内存池,对象池?数据库:mysql慢查询日志的开放?池概念:预分配(减少切换和调度),以内存换CPU, 预处理(线程池,连接池);性能监控日志的框架?基于消息队列、时间统计建立的基础统计和监控框架 9 ?时间函数:rdtsc #define rdtscll(val) \ __asm__ __volatile__("rdtsc" : "=A" (val)) #define TICK( name ) \ unsigned long longname = 0; \ rdtscll( name ); ?用法: TICK(A) …TICK(B) mark_tick( LOGIC_NAME, A, B ); …log_tick(); ?重相对值,轻绝对值 10
大宝_网游服务器性能优化 来自淘豆网m.daumloan.com转载请标明出处.