购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

第46条
为被测对象建立性能基准

著名计算机科学家、《计算机程序设计艺术》的作者高德纳曾说过: “过早优化是万恶之源。” 这一名言长久以来被很多开发者 奉为圭臬 。而关于这句名言的解读也像“编程语言战争”一样成为程序员界的常设话题。

笔者认为之所以对这句话的解读出现“见仁见智”的情况,是因为这句话本身缺少 上下文

不同开发者看问题的视角不同,所处的上下文不同,得出的解读自然也不会相同。Android界开源大牛Jake Wharton就曾提出过这样一个观点:“ 过早的引用‘过早优化是万恶之源’是一切龟速软件之源 。”

是否优化、何时优化实质上是一个 决策问题 ,但 决策不能靠直觉,要靠数据说话 。借用上面名言中的句型: 没有数据支撑的过早决策是万恶之源

Go语言最初被其设计者们定位为“系统级编程语言”,这说明高性能一直是Go核心团队的目标之一。很多来自动态类型语言的开发者转到Go语言显然也是为了性能(相对于动态类型语言),Gopher期望Go核心团队对Go GC的持续优化也都是出于对性能关注的表现。性能优化也是优化的一种,作为一名Go开发者,我们该如何做出是否对代码进行性能优化的决策呢?可以通过 为被测对象建立性能基准的方式 去获得决策是否优化的支撑数据,同时可以根据这些性能基准数据判断出对代码所做的任何更改是否对代码性能有所影响。 PIiTgrA51X+oXbIUn0PEWY1hVWLs22gTI9tyReF5Ke8IYsuI1amttaM/xVlbu9tl

点击中间区域
呼出菜单
上一章
目录
下一章
×