为什么语言的简单性和执行时间之间似乎存在紧张关系?

Mad*_*May 4 c++ python interpreter compilation execution

在我看来,使用起来非常简单的语言(即Python)通常比被认为更复杂的语言(即C++或Java)的执行时间更慢.为什么?我知道问题的一部分源于Py​​thon被解释而不是编译,但是什么阻止Python(或其他高级语言)被有效编译?有没有你认为没有这种权衡的编程语言?

Kar*_*wak 5

高级语言(或者至少是动态语言)的效率问题源于这样一个事实,即通常不知道在运行时解析实际类型的对象之前需要执行哪些操作.因此,这些语言不能编译成简单的机器代码,而是必须完成所有重要工作.


小智 5

让我们比较C和Python.大多数人认为C编程比Python更"复杂".这是因为Python自动化了许多C不能完成的工作.例如,垃圾收集在Python中是自动化的,但是程序员在C中负责.

这种自动化的代价是这些"高级功能"必须足够通用,以"适应"每个程序的需求.例如,Python垃圾收集器具有预定义的调度/垃圾收集算法,这可能不是每个应用程序的最佳选择.另一方面,C为程序员提供了完全的灵活性,可以按照自己的意愿定义GC计划和算法.

所以你有它,轻松与性能.