2009-11-15 36 views

回答

7

昨天我刚刚偶然发现了语言shootout,您可以在这里再次比较运行不同程序时两种语言的某些性能特征。但是,我没有找到网络性能的基准。

事实是,像PHP这样的解释语言总是比编译语言慢。 JSP文件也会被编译,所以一旦服务器启动并且不再被更改,性能将比每次请求进入时都会被解释的PHP脚本更好。

另一方面,无论如何,第一个性能瓶颈将可能是数据库速度。然后,还有很多其他方法可以提高性能,例如预编译PHP脚本,将重度计算外化到C等等。与Java Web开发的怪物相比,PHP很容易学习和相处。最后,如果你有选择,你应该选择你最熟悉的语言。如果你正在开始一个新项目,你甚至不知道是否所有的性能考虑因素都会变得重要,因为你还没有用户,只想快速获得你的应用程序。

1

Daff对PHP和JSP的解释在技术上是错误的,他的文章的基本要点是正确的:选择最适合你的语言。你很少会发现自己处于一个表现真的非常糟糕的位置。此时,您更有可能使用您的选择语言进行重要的体系结构优化 - 而且这些优化可能比PHP和JSP之间的差异具有更大的影响。

编程的核心规则之一一直是为了避免过早优化 - 如果没有其他原因,除非因为直到实际上处于压力之下,否则你不知道你实际需要优化什么,也没有确定它是否有效的手段。

如果您认为有可能会遇到性能问题,则任何网站都无法为您提供帮助。最重要的是创建您自己的负载测试基准,它们代表您网站工作方式的具体细节,模拟用户如何操作。只有完成这些之后,才能继续调整代码,实施诸如缓存,负载平衡,数据和请求分区等内容,并确信您所做的更改对您的网站性能产生了积极影响。

有专门对一般的优化过程的书,但关键顺序是这样的:

  1. 基准
  2. 更改测试
  3. 看到基准,如果变化表明性能改进
  4. 围棋live
  5. 评估实时响应以查看基准预测是否正确

(人们忘记了#5了很多,导致自己的悲伤)

如果你打算花时间去担心性能,花时间建立该序列,不花时间去担心你的语言选择。

+3

我没有问题设置解释权。但你只是说,这是错的,不用说为什么没有太大的帮助... – Daff 2009-11-15 12:26:11

+2

我相信你的“避免过早优化”的概括,以“避免优化,直到客户抱怨”是不正确的。您应该始终选择* best * _algorithm_作为目的,然后尽可能以最简单的方式使用它,同时保持正确。然后偶尔瓶颈会出现在未经预料的地方,但是你很少需要掏出胆量并用新的东西代替它,而只是找到瓶颈并给予特别关注(以更复杂但仍然正确的方式)。 – 2009-11-15 12:39:48