假设一个程序是用 2 种不同的语言编写的:
- 使用从源代码解释的语言(例如 PHP)
- 使用从字节码解释的语言(例如 Java)。
这两个程序的作用完全相同(为简单起见,假设它们都只输出一行文本)。
语言 (2) 会比 (1) 快吗?
我是否可以得出这样的结论:理论上,如果两个站点提供相同的功能,但一个使用 PHP 构建而另一个使用 Java (JSP) 构建,则基于 Java 的站点会更快?
乔尔
假设一个程序是用 2 种不同的语言编写的:
这两个程序的作用完全相同(为简单起见,假设它们都只输出一行文本)。
语言 (2) 会比 (1) 快吗?
我是否可以得出这样的结论:理论上,如果两个站点提供相同的功能,但一个使用 PHP 构建而另一个使用 Java (JSP) 构建,则基于 Java 的站点会更快?
乔尔
不,对此根本没有任何保证。它是生成中间字节码的正常编译过程的一部分。PHP 只需要源代码 -> 字节码 -> 执行,一气呵成,而 Java 是源代码 -> 文件 -> 字节码 -> 执行。没有太大区别。主要区别在于后端——支持两种语言的 JIT 有多有效,程序中有多少是静态的还是动态的(例如类型)。
更重要的是,下载和下载必要的数据包或数据库交互所花费的时间可能会主导网站性能,而不是支持语言。
对于文本与字节码解释器,一般来说,“更快”的解释器将花费更多技术将源代码编译为优化的机器代码。这假设要执行的计算量决定了“编译”代码所需的时间。
对于网页,它可能很重要,也可能无关紧要,因为您的网页可能没有很多计算要做。(大多数网页都花时间等待用户输入 :) 对于您的单行示例,我认为没有人在乎。
对于 PHP 与 Java,我想你会发现 Java 在整体速度方面是毫无争议的赢家。PHP HipHop 编译器试图赶上大多数 Java 实现的一般即时编译器功能。