Performance 网站性能-它是关于什么的?可读性和无知与性能

Performance 网站性能-它是关于什么的?可读性和无知与性能,performance,web,Performance,Web,让我切入正题… 一方面,给出的许多编程建议(这里和其他地方)强调了这样一个概念,代码应该总是尽可能可读和清晰,,几乎不惜任何代价。 另一方面,有太多缓慢的网站(至少有一个,我从个人经验中知道)。 显然,往返和数据库访问是web开发人员应该始终牢记的问题。但是可读性和不做什么之间的权衡,因为这会减慢速度,对我来说是非常不清楚的 问题是-1.还有什么2.有没有一条规则(最好是简单的,但可能很一般)应该遵守,以确保他的代码不会使事情拖得太慢 如能提供一般最佳做法和具体建议,将不胜感激。基于经验的建议将

让我切入正题…
一方面,给出的许多编程建议(这里和其他地方)强调了这样一个概念,代码应该总是尽可能可读和清晰,,几乎不惜任何代价。 另一方面,有太多缓慢的网站(至少有一个,我从个人经验中知道)。
显然,往返和数据库访问是web开发人员应该始终牢记的问题。但是可读性和不做什么之间的权衡,因为这会减慢速度,对我来说是非常不清楚的
问题是-
1.还有什么
2.有没有一条规则(最好是简单的,但可能很一般)应该遵守,以确保他的代码不会使事情拖得太慢
如能提供一般最佳做法和具体建议,将不胜感激。基于经验的建议将特别感激。

谢谢


编辑:一点澄清:一般绩效建议并不难找到。那不是我要找的。我在问两件事——1。当我试图使代码尽可能可读时,我应该什么时候停下来说:“现在我对性能的影响太大了”。
2。很少有人知道这样的事情-只选择一列比选择所有列快(谢谢奥塔维奥)…

再次感谢

请参见此处的堆栈溢出讨论:

得票最多的答案是:“写得干净利落,用剖析器找出真正的问题并加以解决。”

根据我的经验,最大的错误(使用C#/asp.net/linq)是由于linq的易用性而过度查询。一个大型查询通常比10000个小型查询快得多


我经常看到的另一个ASP.NET问题是viewstate变得非常胖和臃肿。EnableViewState=false是你最好的朋友,用它开始每个新项目吧

对于具有数据库后端的web应用程序,以下几点非常重要:

  • 索引正确完成
  • 检索是针对需要的内容进行的(选择特定字段时避免选择*——如果它们是覆盖索引的一部分,则更是如此)
此外,只要可能,适当的缓存策略可以帮助优化代码的性能

使代码尽可能可读是非常重要的。优化it同样重要。我列出了一些项目,希望能帮你找到正确的方向

例如关于数据库:

  • 当您定义数据库的模式时,您应该确保它是规范化的,并且字段的索引定义正确
  • 运行查询时,特别是选择时,仅选择所需的字段
  • 每次加载页面时,您应该只与数据库建立一个连接
  • 重新考虑。这可能是生成干净、优化代码的最重要因素。总是回头看看你的代码,看看能做些什么来改进它
PHP代码:

  • 始终使用PHPUnit之类的工具测试您的工作
  • 回音比打印速度快
  • 将字符串用单引号(')而不是双引号(“)括起来更快,因为PHP在“…”中搜索变量,而不是在“…”中搜索变量。如果不在字符串中使用需要求值的变量,请使用此选项
  • 使用echo的多个参数(或堆叠)而不是字符串串联
  • 取消设置或为空变量以释放内存,尤其是大型数组
  • 使用严格的代码,避免抑制错误、通知和警告,从而导致更干净的代码和较少的开销。考虑始终执行错误报告(EYALL)。
  • 增加未定义的局部变量比增加预初始化的局部变量慢9-10倍
  • 派生类中的方法比基类中定义的方法运行得更快
  • 使用@抑制错误的速度非常慢
网站优化

  • 一个好的起点是这里()
性能是一个巨大的话题,你可以做很多事情来帮助提高网站的性能。这需要时间和经验

最好的,
Richard Castera和RCatera在数据库和查询优化方面做得很好。要从HTML/CSS/JavaScript的角度解决您的问题:

CSS:
可读性是关键。CSS呈现得如此之快,以至于您永远不会觉得有必要为了性能而牺牲可读性。因此,请关注添加尽可能多的注释来记录代码,为什么要使用某些规则(如黑客)在CSS中有几个明显的规则可以遵循:1)使用外部样式表。2)限制外部样式表以限制GET请求

HTML:与CSS一样,浏览器读取HTML的速度非常快,您应该只关注编写干净的代码。使用空格、缩进和注释来正确记录您的工作。HTML中唯一需要记住的主要内容是:1)在标题部分的早期声明
。2)。*此规则实际上也适用于CSS。


JavaScript:大多数JavaScript优化现在已经非常有名了,因此这些优化看起来很明显,比如在循环之外初始化变量,将JavaScript推到正文底部,以便在脚本开始占用所有资源之前加载DOM,避免像eval()或with()这样代价高昂的语句。这听起来不像是一个坏记录,但在开发JavaScript代码时,保留一个注释良好且易于阅读的脚本仍然应该是一个优先事项。特别是因为您可以在部署它时将多余的内容最小化并压缩掉。

很有意思。。但我想知道,在我实际编写代码和查询时,应该注意什么,以及H