从源代码解释语言与Web中的字节码

时间:2010-12-10 15:51:12

标签: compiler-construction programming-languages interpreted-language

假设一个程序用两种不同的语言编写:

  1. 从源代码(例如PHP)解释的语言
  2. 在从字节码(例如Java)解释的语言中。
  3. 两个程序完全相同(为简单起见,假设它们只输出一行文本)。

    语言(2)会比(1)快吗?

    在理论上,我可以得出结论,在两个站点提供相同功能的情况下,但是一个用PHP构建而另一个用Java(JSP)构建,基于Java的站点会更快吗?

    乔尔

2 个答案:

答案 0 :(得分:2)

不,这根本无法保证。这是生成中间字节码的正常编译过程的一部分。 PHP只是源 - >字节码 - >一次性执行,而Java是源 - >文件 - >字节码 - >执行。没有太大的区别。主要区别在于后端 - JIT支持两种语言的效率如何,程序中有多少是静态的与动态的(例如类型)。

更重要的是,花费和下载必要的数据包或数据库交互的时间可能会主导网站性能,而不是支持语言。

答案 1 :(得分:1)

对于文本与字节代码解释器,通常,“更快”的解释器将是将更多技术用于将源代码编译为优化的机器代码的技术。这假设要做的计算量占据了“编译”代码所需的时间。

Fro web 页面,它可能会或可能不重要,因为您的网页可能没有很多计算要做。 (大多数网页都花时间等待用户输入:)对于你的一行示例,我认为没有人关心。

对于PHP与Java,我认为你会发现Java在整体速度方面是一个不折不扣的赢家。 PHP HipHop编译器试图赶上大多数Java实现的一般即时编译器功能。