是什么让PHP比Java或C#慢?

2022-08-30 14:32:51

这是我一直想知道的事情:为什么PHP比Java或C#慢,如果所有3种语言都被编译成字节码,然后从那里执行?我知道通常PHP会随着每个请求重新编译每个文件,但即使你把APC(字节码缓存)放到图片中,性能也远不及Java或C#(尽管APC大大提高了它)。

编辑:我甚至没有在网络层面上谈论这些语言。我说的是它们在数字运算时的比较。甚至不包括启动时间或类似的东西。

另外,我不是根据这里的答复做出某种决定。PHP是我选择的语言;我只是对它的设计感到好奇。


答案 1

一个原因是PHP中缺少JIT编译器,正如其他人所提到的。

另一个重要原因是PHP的动态类型。动态类型化语言总是比静态类型语言慢,因为在运行时而不是编译时检查变量类型。因此,像C#和Java这样的静态类型语言在运行时会快得多,尽管它们通常必须提前编译。JIT编译器使动态类型语言的问题变得不那么重要,但是遗憾的是,PHP没有内置功能。(编辑:PHP 8将附带一个内置的JIT编译器。


答案 2

我猜你有点喜欢在这里比较苹果和橙子 - 假设你正在使用所有这些语言来创建Web应用程序,那么它不仅仅是语言。(很多时候,数据库会减慢你的速度;-)

我永远不会建议在速度论证的基础上选择其中一种语言而不是另一种语言。


推荐