在大多数高负载的Web应用程序中,计算代码是我最不关心的。
典型的高可用性Web应用程序的瓶颈(不一定按顺序,但最有可能的是):
使您的应用程序可扩展的主要问题是:
只有在实现了以上所有内容后,再优化您的代码。
如果我漏掉了什么,请随时添加到列表中。
而且,更快的硬件也不是解决方案。事实上,谷歌以使用廉价机群而著名。
(例如拥有1亿用户,每秒超过xx百万的请求)
要实现这种性能水平,你必须将网站/应用程序设计和实现为可扩展的多层系统,并在(可能)所有层次上进行复制。此时,一个编程语言比另一个更快/更慢的事实可能只影响您需要在处理器农场中使用的机器数量。系统架构的设计则更加重要。
C语言是目前最快的语言。它如此之快,以至于我们用它来编写其他语言。但是,几乎没有人会认真地用C语言编写网站。为什么呢?因为在C语言中很容易出现难以检测的错误,而且它几乎没有任何帮助你的功能。简而言之,它会让程序员陷入困境并产生错误。
构建一个强大、快速的应用程序不是选择最快的语言,而是A)可维护性和B)可扩展性。
可维护性意味着它没有太多的错误。这意味着您可以快速添加新功能和修改现有功能。您需要一种尽可能多地为您完成工作并不会妨碍您的语言。这就是Perl、Python、PHP和Ruby如此受欢迎的原因。它们都是为了程序员的方便而编写的,而不是为了原始性能或整洁度。C语言是为了原始性能而编写的。Java是为了概念上的整洁而编写的。
可伸缩性意味着你可以从10个用户扩展到10,000个用户,而无需重写整个系统。以前这意味着你要编写最紧凑的代码,但高度优化的代码通常很难维护。它通常是为了计算机的利益而做的,而不是为了人类和业务的利益。这就牺牲了可维护性,你得告诉老板加一个新功能需要花3个月的时间。我同意luc的观点。架构才是真正重要的,编程语言并不是。
谷歌正在使用Python进行GAE开发,Windows Azure提供PHP。LAMP架构非常适合应用程序的可伸缩性。
我认为编程语言在性能方面并不是那么重要。最重要的是要看你的应用程序架构。
希望有所帮助。
对于 PHP,有很多可以提高性能的方法。例如:
这些方法肯定会有助于缩小与低级语言之间的差距。因此,回答你的问题,代码内部还有其他优化方法可以使其运行更快。