【问题标题】:What is the main reason why interpreter language is slower than compiler language?解释器语言比编译器语言慢的主要原因是什么?
【发布时间】:2019-07-04 09:09:13
【问题描述】:

在使用 python 语言时,我很好奇为什么解释器语言比编译器语言慢。根据谷歌搜索,这是因为解释器语言的目标代码是在虚拟环境中执行,而编译器语言的目标是物理环境。然后,我的一位朋友带来了新的意见。他说,编译器语言生成目标代码可以减少许多不必要的代码部分并提高执行速度,这也可以称为优化,而解释器语言是逐行执行的。哪一个是主要原因?两个都对吗?

【问题讨论】:

  • 可能重复。那里有一个受欢迎的here
  • 因为获取周期发生在软件而不是硬件中,
  • 而且我没有在所谓的副本中看到任何实际上充分解决这个问题的东西,或者确实可以得到任何正确的东西。而且问题不是太宽泛,就是一个很简单的十个字的答案,
  • 什么是编译/解释语言?参见 PyPy 和 Nuitka,例如 Python 的编译。有关 C 解释器的示例,请参见 Ch。

标签: performance interpreter


【解决方案1】:

基本上...

正如您在参考文献中指出的那样,编译后的代码会产生机器代码,它与物理机器处理器和记忆。

而解释器本身可能是机器代码,它会解析您的表达式,以便运行生成的(尽管是伪的)代码来生成表达式结果。这里的关键是在运行时有一个额外的层(解析和执行),这会增加开销和影响性能。

【讨论】:

  • 没有评估步骤。这些步骤是获取-执行-增量 PC。解释器和编译的 cde 中的执行步骤是相同的​​。其他两个不是。
猜你喜欢
  • 2010-09-06
  • 1970-01-01
  • 2011-02-09
  • 2011-03-16
  • 2010-09-21
  • 1970-01-01
  • 2011-03-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多