在我之后最后一个问题 https://stackoverflow.com/questions/2116826/how-to-explain-at-your-boss-that-code-resources-optimization-is-important,我想了解什么时候优化确实值得开发人员花时间在上面。
是否值得花费 4 小时来获得速度提高 20% 的查询?是的,不,也许,是的,如果……?
“浪费”7 个小时将任务切换到另一种语言以节省大约 40% 的 CPU 使用率“值得”吗?
我对新项目的正常迭代是:
- 了解客户想要什么,需要什么;
- 规划项目:使用什么语言、在哪里、数据库设计;
- 开发项目;
- 测试和错误修复;
- 运行项目的最终分析和最终优化;
- 如果项目需要,进一步分析资源的实际使用情况并进一步优化;
隐含着“编写好的、可维护的代码”。
显然,最大的“优化”部分发生在第二点,但通常在项目结束后检查代码时,我会发现一些部分,即使它们做得很好,也可以改进。这就是第 5 点的基本原理。
举一个具体的例子来说明最后一点,一个简单的例子是当我期望 90% 的查询是SELECT
和 10%INSERT/UPDATE
,所以我给数据库表添加了索引。但 6 个月后,我发现现实生活中有 10%SELECT
查询和 90%INSERT/UPDATE
s,所以查询速度没有优化。这是我想到的第一个例子(显然这更多的是对初始错误设计的“补丁”而不是优化;)。
请注意,我是一名开发人员,而不是一名商人 - 但我希望问心无愧,尽可能为我的客户提供最好的服务。
我的意思是,我知道如果我损失 50 个小时来获得应用程序总加速的 5%,并且该应用程序由 10 个用户使用,那么可能不值得花时间......但是当它是时呢? ?
您认为什么时候优化至关重要?
当您意识到优化所花费的时间(以及最终收益)并不总是可以在纸上量化时,您通常会应用什么公式?
EDIT:抱歉,但我不能接受“除非人们不抱怨 id,否则不需要优化”这样的答案;它可以是一个业务视图(有问题,恕我直言),但不是开发人员或(恕我直言)一个明智的答案。我知道,这个问题确实很主观。
我同意Cheeso的观点,在对项目的实际使用情况和负载进行一些分析之后,应该推迟性能优化,但是可以在项目结束后立即进行小而快速的优化。
谢谢大家 ;)