每个人都对提高性能的时间和地点有自己的看法,所以这里不感兴趣,但我想知道在什么时候性能提升值得推广(比如从分支开发到主干,或者足够放置)一些进度报告或其他)。
例如,我的经验法则是10%的性能提升是值得注意的,但5%并不特别(当然加起来它们可能是值得的)
注意:由于没有正确的答案标记此维基,但我确实认为对该主题有意见在决定性能时很有用
答案 0 :(得分:4)
我宁愿使用绝对值。 1毫秒的20%不是你关心的事情。但是,2小时的时间非常令人印象深刻。
答案 1 :(得分:3)
如果提高性能为系统增加了新的质量,那么值得一提。否则通常不会关心。
例如,如果系统在加载了合理但通常高于一定数量的数据时工作速度明显变慢并且您已经解决了这个问题,那么值得一提,因为那些加载大量数据的用户将从改进中受益。
答案 2 :(得分:2)
对于大n的O(n)到O(log n)算法改进非常好。
答案 3 :(得分:2)
我认为这也取决于代码的优雅/可读性。如果一个特定的变化感觉像是一个更正确的解决方案,消除代码中的一些愚蠢,那么如果它也提高了性能,它就是“值得”的。但是,如果某个特定的更改仅仅是为了提高性能而设计的,并且会降低代码的可读性或可维护性,那么最好使其变得有价值......可能是50%。
答案 4 :(得分:2)
取决于。
如果这些5%转化为省钱,例如在一个大型服务器农场,这将是值得注意的。
如果最终用户的计算机上的速度提高了5%,谁也不会注意到,那么就不会。
答案 5 :(得分:2)
这取决于背景。
在需要实时播放视频的应用程序中,每帧1毫秒的改进可以是每秒30帧(这是视频剪辑的常用速率)到每秒29帧之间的差异(看起来 - 在视觉上 - 由于丢帧而更糟糕。)
在另一个运行过夜的应用程序中,两个小时与三个小时可能不会产生任何真正的世界差异(但是在运行时对数据库造成的负载可能非常显着 - 而是优化它!)。
答案 6 :(得分:2)
这是一个简单的测试:给某人一个未经优化的系统并要求他们使用它。给他们优化的系统,并要求他们使用它。询问他们是否可以区分,以及他们最喜欢哪些。 (确保这是一个双盲测试,系统是相同的)。如果人们更喜欢优化的系统,那值得制造噪音。
这是一个更简单的测试:你能分辨出来吗?如果你不能,那就不值得一提了。 (另一方面,小的改进累积)。
答案 7 :(得分:1)
基本上,当完整工作单元为一个数量级或更高时。