由于我是一名孤独的开发人员,我必须考虑我正在研究的系统的各个方面.最近我一直在考虑我的两个网站的性能,以及改进它的方法.像StackOverflow这样的网站宣称,"性能是一种功能".然而,"过早优化是所有邪恶的根源",我的客户都没有抱怨网站的表现.
我的问题是,表现总是很重要吗?性能应该始终是一个功能吗?
注:我不认为这个问题是一样的这一个,作为海报问什么时候要考虑性能,我问,如果这个问题的答案是永远的,如果是这样,为什么.我也不认为这个问题应该是CW,因为我相信这个答案有一个答案和推理.
充足的表现总是很重要.
绝对最快的性能几乎从不重要.
它总是值得保留对性能的眼睛和意识到的东西悍然非最佳,你正在做的(特别是在设计/建筑水平),但是这是不一样的微优化的每一行代码.
性能!=优化.
性能确实是一项功能,但过早优化会花费您的时间,并且不会产生与优化需要优化的部件时相同的结果.在你真正分析某些东西之前,你无法真正知道哪些部分需要优化.
性能是您的客户不会告诉您是否缺少性能的功能,除非它真的非常缓慢并且他们被迫使用您的产品.现有客户最终可能会报告,但如果需要性能,新客户将无需担心.
您需要了解所需的性能,并将其作为一项要求进行制定.然后,你必须满足自己的要求.
这种"邪恶的根源"几乎总是被滥用和误解.
设计您的应用程序以表现良好可以通过良好的设计来完成.良好的设计!=过早的优化,并且完全写出废话代码并且在设计上做得更好,作为一种"邪恶的"浪费是完全荒谬的.现在,我不是在这里专门谈论你......但我看到人们做了很多.
它通常可以节省您在设计上做得很好的时间.如果你强调这一点,你就会变得更好......并且在编写从一开始就表现良好的系统时会越来越快.
了解哪种结构和访问方法在某些情况下最有效是关键.
当然,如果你的应用程序变得非常庞大或者有疯狂的速度要求,你可能会发现自己正在进行欺骗性优化,使你的代码变得更难或更难维护......在你需要之前做这些事情是不对的.
但是,这绝对是不一样的东西在努力理解和运用正确的算法或数据模式或任何摆在首位.
如果可以忍受,那么您的用户可能不会抱怨性能不佳.他们甚至可能不知道它会更快.作为主要驱动因素的投诉是一种糟糕的经营方式.当然,你需要解决你收到的投诉......但缺乏这些投诉并不意味着没有问题.您正在考虑提高性能这一事实在某种程度上是一个指标.这只是一时兴起,还是你告诉你应该更好的一部分?你为什么考虑改进它?
只是不要疯狂做不必要的事情.
记住表现,但考虑到你的情况,在前面花费太多时间是不明智的.
性能很重要,但通常很难知道你的瓶颈在哪里.因此,我建议您在完成某项工作后,计划花一些时间来使用此功能.
因此,您需要设置对您和您的客户都很重要的指标.保留并分析这些测量值.然后估计每个实施的时间和长度.现在,您可以针对上获得尽可能多的爆炸为您降压/时间.
如果是网络,最好使用Firebug + yslow和/或谷歌页面速度来记录您的页面大小和性能.再次,知道什么适用于像你这样的小网站和仅适用于雅虎和谷歌的东西.