Performance 编程语言的速度对web应用程序重要吗?

Performance 编程语言的速度对web应用程序重要吗?,performance,web-applications,Performance,Web Applications,我在互联网上看到很多PHP、Python、Ruby等之间的基准测试。Ruby由于速度太慢而受到很多批评,这导致开发人员出于“性能原因”拒绝将其用于web开发。但是解释器的性能对web应用程序真的很重要吗?瓶颈不是99%的时间都在数据库中吗?那为什么大家都吓坏了 注意:我意识到在某些边缘情况下,例如某些数学/科学web应用程序,性能非常重要,但我不是在谈论这些;我说的是你的平均社交网络、堆栈溢出等等。我认为你的问题没有经过深思熟虑 首先,您断言大多数web应用程序在应用程序方面不需要出色的性能,这

我在互联网上看到很多PHP、Python、Ruby等之间的基准测试。Ruby由于速度太慢而受到很多批评,这导致开发人员出于“性能原因”拒绝将其用于web开发。但是解释器的性能对web应用程序真的很重要吗?瓶颈不是99%的时间都在数据库中吗?那为什么大家都吓坏了


注意:我意识到在某些边缘情况下,例如某些数学/科学web应用程序,性能非常重要,但我不是在谈论这些;我说的是你的平均社交网络、堆栈溢出等等。

我认为你的问题没有经过深思熟虑

首先,您断言大多数web应用程序在应用程序方面不需要出色的性能,这可能对很多web应用程序来说都是正确的。然后,给出一些需要良好性能的Web应用程序示例,然后挥动它们,说人们只是用C++或java编写它们!p> 那么,您不认为他们可能更喜欢用Ruby或Python编写它们吗?也许这就是为什么人们对测量Ruby和Python的性能感兴趣

编辑:好的,你对普通的网络应用感兴趣。那么你和我都可以看到有两种可能性:

  • 性能实际上很重要,这就是为什么他们关心Ruby、Python和PHP的性能

  • 表现并不重要,所以他们错了,他们要么不知道事实,要么找借口


性能重要吗?最后,当然

但是,你的网站必须变得如此庞大,以至于在传统优化之外(例如在数据库中建立适当的索引),你的点击率必须达到每月数百万次

我不认为对Ruby的厌恶与性能有多大关系(尽管这方面存在问题)。更重要的是,它未经验证,以不稳定著称,并强迫您使用非常严格的框架(是的,我知道您可以在不使用Rails的情况下使用Ruby,等等)。我不是Ruby的粉丝,原因与我不是CakePHP或Symfony等重量级PHP框架的粉丝一样:我发现这些框架过于具有侵略性,以至于你不再使用PHP。与此相比,CodeIgniter等重量更轻的Framewrk具有更好的投资回报(imho)

性能对web应用程序重要吗

对!甚至比桌面应用程序更重要


对于桌面应用程序,如果您需要它,您可以使用用户计算机上几乎所有的可用资源。使用web应用程序时,一台计算机可能需要同时为大量用户运行应用程序。如果你不能很容易地做到这一点,那你就真的有麻烦了。

这可能很重要,取决于上下文。大多数网站都是在共享主机服务器上运行的,这些服务器上的东西加起来就是这样的。在同一个机器上运行几百个web应用程序时,您将遇到CPU和内存瓶颈。

这不应该是您问题的焦点。相反,您应该关注如何以最有效的方式将内容交付给最终用户。如果一个web应用程序写得很好,我认为任何主要的服务器端语言都是一个不错的选择。

让你胆战心惊的是,amazon.com和google.com所做的多项研究发现,页面加载时间减少<1秒对他们有显著影响影响其转换率,从而影响利润


因此,性能非常重要,即使对于小型站点也是如此。问题是这有多重要。当你每天做100件单件时,损失1%的销售额其实并不重要,但当你做1000万件单件时,突然间,损失1%的销售额会让你花很多钱

即使是响应时间的微小变化 可以产生显著的效果。谷歌 发现从一个10的移动结果 在0.4秒内将页面加载到 在0.9秒内加载30个结果页 通过 20%(林登2006年)。当主页 谷歌地图的大小从100KB减少 到70-80KB,流量在第二季度增长了10% 第一周,第二周增加25% 接下来的三周(法伯) 2006). 亚马逊的测试显示 类似的结果:每增加100毫秒 亚马逊网站的下载时间缩短了 销售额增长1%(科哈维和隆博坦) 2007). 微软的实验 现场搜索显示,当搜索 结果页面的速度减慢了1秒: (科哈维2007)

减慢搜索结果页面的速度后 2秒后:

* Queries per user declined by 2.5%, and
* Ad clicks per user declined by 4.4%


大多数网站会在网站正常运行后立即发布第一个版本代码。如果他们真的成功了,很快就会有几秒钟的页面,他们需要关注硬件或软件,我猜你是在暗示页面代码和数据库软件之间的一个隐含区别

您是否想知道我们是否不应该为页面代码而烦恼,并假设数据库中存在任何非硬件扩展问题?那不是我的经验;虽然通常是数据库最快发布,因为像马蹄铁一样,太频繁地关闭就足够了(只要答案是您所期望的)

但是,我看到过更多的页面代码试图实现数据库设计的功能(例如使用数组),而不是相反的功能(例如游标),这对速度和可伸缩性造成了同样不利的影响。根据我的经验,优化数据库查询比修复PHP代码要少

我认为大多数速度问题不是语言(或dbms本身),而是设计和代码的质量。因此,我认为优秀的开发人员更关心的是一种语言是否有助于良好的设计和良好的代码,而不是
* Queries per user declined by 2.5%, and
* Ad clicks per user declined by 4.4%