【未来虫教育】性能优化的层次
创始人
2025-06-05 18:23:41
0

按照我的理解可以分为需求阶段,设计阶段,实现阶段;越上层的阶段优化效果越明显,同时也更需要对业务、需求的深入理解。

需求阶段

不战而屈人之兵,善之善者也

程序员的需求可能来自 PM、UI 的业务需求(或者说是功能性需求),也可能来自 Team Leader 的需求。当我们拿到一个需求的时候,首先需要的是思考、讨论需求的合理性,而不是立刻去设计、去编码。

需求是为了解决某个问题,问题是本质,需求是解决问题的手段。那么需求是否能否真正的解决问题,程序员也得自己去思考,在之前的文章也提到过,产品经理(特别是知道一点技术的产品经理)的某个需求可能只是某个问题的解决方案,他认为这个方法可以解决他的问题,于是把解决方案当成了需求,而不是真正的问题。

需求讨论的前提对业务的深入了解,如果不了解业务,根本没法讨论。即使需求已经实现了,当我们发现有性能问题的时候,首先也可以从需求出发。

需求分析对性能优化有什么帮助呢,第一,为了达到同样的目的,解决同样问题,也许可以有性能更优(消耗更小)的办法。这种优化是无损的,即不改变需求本质的同时,又能达到性能优化的效果;第二种情况,有损的优化,即在不明显影响用户的体验,稍微修改需求、放宽条件,就能大大解决性能问题。PM 退步一小步,程序前进一大步。

需求讨论也有助于设计时更具扩展性,应对未来的需求变化,这里按下不表。

设计阶段

高手都是花 80% 时间思考,20% 时间实现;新手写起代码来很快,但后面是无穷无尽的修 bug

设计的概念很宽泛,包括架构设计、技术选型、接口设计等等。架构设计约束了系统的扩展、技术选型决定了代码实现。编程语言、框架都是工具,不同的系统、业务需要选择适当的工具集。如果设计的时候做的不够好,那么后面就很难优化,甚至需要推到重来。

实现阶段

实现是把功能翻译成代码的过程,这个层面的优化,主要是针对一个调用流程,一个函数,一段代码的优化。各种 profile 工具也主要是在这个阶段生效。除了静态的代码的优化,还有编译时优化,运行时优化。后二者要求就很高了,程序员可控性较弱。

代码层面,造成性能瓶颈的原因通常是高频调用的函数、或者单次消耗非常高的函数、或者二者的结合。

下面介绍针对设计阶段与实现阶段的优化手段。

相关内容

最新资讯

岳峰小学开展安全应急演练暨“消... 鲁网12月15日讯 近日,岳峰小学开展安全应急演练暨“消防设施我会用,关键时刻能救命”安全教育活动。...
天津市首届基础教育学生创新能力... 天津北方网讯:12月9日至10日,由天津市教育科学研究院德育与教育心理研究所(拔尖创新人才早期培养研...
筑牢校园防毒墙!白沙镇禁毒课堂... 为进一步加强校园禁毒宣传教育,提升青少年学生识毒、防毒、拒毒意识与能力,12月10日,白沙镇综治中心...
首经贸大学多举措推进财经教育教... (来源:劳动午报) 转自:劳动午报 本报讯 (记者 任洁) 首都经济贸易大学近日举行2025年人才培...
极石ADAMAS广州车展首秀:... 在2025广州国际车展上,极石汽车携旗下全新力作——全地形豪华SUV极石ADAMAS完成国内首秀,同...
第21届长沙国际车展闭幕,年终... 办了21届,长沙国际车展,代表着什么? 它是主场,是全国为数不多的媒体办展,是立足潇湘的潇湘晨报、中...
AI应用让设计效率提升100%... 极目新闻见习记者 杨绍杭 “以前最怕甲方说‘感觉不对’,现在AI能把各种需求理解清楚,高效设计。”中...
监管部门出手整治不正当价格行为... 近日,国家市场监督管理总局研究起草了《汽车行业价格行为合规指南(征求意见稿)》(下称《指南》),并向...
丰田打造GR独立品牌,这一招真... # 丰田# # GR GT# # CLAUTO酷乐汽车 # Author / 酷乐汽车 道奇曾仅以...
大灯组件改用螺丝安装,奔驰环保... # 奔驰# # 环保# # CLAUTO酷乐汽车 # Author / 酷乐汽车 欧洲车企中,减少...