我在Sitepoint上看到这篇帖子引用了Rasmus Lerdorf的一份声明(根据Sitepoint),如下:
如何快速制作PHP?嗯,你不能“是他的快速答案.PHP根本不够快,不能扩展到雅虎级别.PHP从来没有用于那些类型的任务。”任何基于脚本的语言都不够快“。为了获得速度这对于真正庞大的Web系统来说是必要的,你必须使用已编译的C ++扩展来获得真正的,可扩展的体系结构。这就是雅虎所做的事情以及许多其他PHP重量级人物。
对该声明感兴趣(更不用说到目前为止,我在PHP中所做的一切都是基于数据库的小型应用程序),我想知道如何使用PHP“使用已编译的C ++扩展”。
任何想法或资源?
答案 0 :(得分:16)
甚至不打扰。 PHP 慢 ...您可以创建C ++和PHP的混合体,但是您需要进行大量的分析以了解什么是缓慢的。这主要是...... PHP。
见以下内容:
首先用C ++编写。它就像在PHP中编写现代C ++ Web框架和C ++知识一样简单。
从哪里开始:
答案 1 :(得分:6)
慢是主观术语。 Facebook(在线最大的网站)建立在PHP之上,我从未听过他们的抱怨。相反,在他们追求速度的过程中,开发和最近发布的HipHop如果您要使用超高速PHP,这是您应该关注的地方。 C ++ for web是不切实际的,因为它需要编译,它会减慢开发过程。
由于: Why are so many web languages interpreted rather than compiled?
http://www.bitsandbuzz.com/article/compiled-web-vs-interpreted-web/
答案 2 :(得分:4)
瓶颈通常是I / O或数据库查询,而不是您正在使用的语言。
答案 3 :(得分:3)
首先要考虑的问题是:您是否为每小时处理超过一百万次点击的网站开发?因为如果没有,那么你在软件开发中的成本是全部,通过调整当前的PHP代码并添加硬件而不是将部分代码库迁移到C或C ++,你将获得更大的收益。
另请参阅http://shootout.alioth.debian.org/,注意代码大小的比较。
是的,超过这个级别(大约),那么你的硬件成本开始升级到值得用编译语言进行开发的额外努力。
接下来要记住的是,虽然编写良好的编译代码几乎总能胜过编写良好的解释代码,但当代码质量甚至略逊于完美时,差异会减少 - 而且效果将根据语言和程序员的能力而有所不同。我目前正在寻找一个用Java编写的专门开发的Web应用程序(它作为本机代码运行),它需要两倍的硬件资源才能比我管理的类似系统运行得慢,程序员用PHP编写,可能最好描述为广泛的技能水平。虽然这与大多数程序员所认为的常识相矛盾,但我有信心说解释/编译的论证不是唯一的。有许多orgranisations /个人仍然在发展解释的langaues,例如Groovy,Apex。
下进行。
答案 4 :(得分:2)
有一篇关于在http://devzone.zend.com/article/1021编写php扩展的介绍(2005年发布,可能有点过时)。
您还可以使用swig之类的工具为现有的C / C ++代码构建包装器。
答案 5 :(得分:1)
感谢Artyom链接到这个信息链接,
其中说“C ++互操作性挑战”。
C ++需要付出很多努力来编写网站。为什么不在C ++和PHP之间选择一种语言,比如用字节码JIT执行的Python,我理解它相对容易被C ++扩展。
答案 6 :(得分:0)
对于大型计算和处理,C ++可以与php一起使用。而对于较轻的过程,只有PHP就足够了。
在处理基于数据处理或计算的应用程序时,C ++可以提供帮助。请不要在这里使用一个技巧。
需要创建服务器(守护程序)进程,以保持请求的内部。此守护程序进程已编译,并包含处理代码。
因此,当有任何处理数据的请求时,它会比PHP快得多,并回复结果。
可以使用exec
或类似函数来执行守护程序可执行文件。