《工业互联网专项工作组2020年工作计划》
具体该如何去量化分析性能?这里列出了一些工具参考:
其中很多工具也是问题排查时常用的诊断工具;毕竟,无论是性能分析还是诊断分析,目的都是去理解一个系统和他所处的环境,所需要做的事情都是相似的。 优化原则 你应该做的:上面已经提了很多,这里再补充一点:性能优化与做功能需求一样,都是为业务服务的,因此优化时千万不要忙着自嗨,一定要结合目标需求和应用场景 —— 也许这块你想做的优化,压根线上就碰不到;也许那块很难做的优化,可以根据流量特征做非通用的定制优化。 你不应该做的:即老生常谈的提前优化(Premature-optimization)与过度优化(Over-optimization) —— 通常而言(并不绝对),性能优化都不是免费的午餐,优化做的越多,往往可维护性也会越差。 优化手段 常用的性能优化手段有哪些?我这里总结了 8 个套路(最后 1 个是小霸王多合一汇总套路)。 1)简化 有些事,你可以选择不做。
2)并行 有些事,你可以找人一起做。 方式:单机并行(多线程)、多机并行(分布式)。 优点:充分利用机器资源(多核、集群)。 缺点:同步开销、线程开销、数据倾斜。
3)异步 有些事,你可以放手,不用死等。 方式:消息队列 + 任务线程 + 通知机制。 优点:提升吞吐率、组件解耦、削峰填谷。 缺点:排队延迟(队列积压)。
4)批量 有些事,你可以合起来一起做。 方式:多次单一操作 → 合并为单次批量操作。 案例:TCP Nagel 算法;DB 的批量读写接口。 优点:避免单次操作的固有开销,均摊后总开销更低。 缺点:等待延迟 + 聚合延迟。
5)时间空间互换 游戏的本质:要么有闲,要么有钱。 空间换时间:避免重复计算、拉近传输距离、分流减少压力。
时间换空间:有时候也能达到“更快”的效果(数据量减少 → 传输时间减少)。
6)数据结构与算法优化 程序 = 数据结构 + 算法
7)池化 & 局部化 共享经济 & 小区超市 池化(Pooling):减少资源创建和销毁开销。
局部化(Localization):避免共享资源竞争开销。
8)更多优化手段
2 稳定性优化 稳住,我们能赢。—— by [0 杀 10 死] 正在等待复活的鲁班七号 维持稳定性是我们程序员每天都要思考和讨论的大事。 什么样的系统才算稳定?我自己写了个小工具,本地跑跑从来没出过问题,算稳定吗?淘宝网站几千人维护,但双十一零点还是经常下单失败,所以它不稳定喽?
稳定是相对的,业务规模越大、场景越复杂,系统越容易出现不稳定,且带来的影响也越严重。 (编辑:保山站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |