0

在谈论高级和低级编程语言之间的执行时间时,我经常听到低级语言的性能比高级语言好一点。

当然,取决于程序员和算法,低级别的性能可能比高级别差。但是,如果我们使用执行不同任务所需的极少代码。由于不同语言的抽象级别,执行时间是否经常存在差异?

还有,有没有人知道关于这类主题的好书?

4

1 回答 1

0

首先,低级与高级不是明确定义的语言属性。它倾向于用于指代原始机器功能的可访问性,指语言提供的抽象设施,并再次描述可用库的特定抽象级别。虽然这些方面可以说是相关的,但它们并不可靠——它们中的任何一个都不是另一个所必需的。

缺乏对机器原语的访问自然会降低通用性能编程的灵活性,但是没有这种访问权限的语言可以通过使用专门用于该领域的库和/或运行时来实现特定领域的高性能(例如,NumPy 和 Matlab 性能与线性代数)。

糟糕的抽象设施使设计、开发、使用、重用和维护变得更加困难。这不一定会直接影响潜在的性能——但实际上,在机制上所做的努力并没有被用来提高性能。同样,缺少高级库并不一定会直接影响性能,但是对基本设施的糟糕构建的重新实现可能会产生相同的效果。


因此,回答您的问题:语言“水平”通常不会决定性能。但是,总有一个“但是”...

此外,诸如 C++ 之类的“广谱”语言也有成本,它将对原始功能的访问与良好的抽象设施和广泛的库相结合:复杂性和认知负荷,这(恕我直言)是上述不同方面之间相关性的驱动因素语言“水平”。

于 2013-03-23T00:27:27.630 回答