在谈论高级和低级编程语言之间的执行时间时,我经常听到低级语言比高级语言执行得更好。
当然,根据程序员和算法,低级别的性能可能比高级别更差。但是,如果我们使用执行不同任务所需的极小代码。由于不同语言的抽象级别,最常会出现执行时间的差异吗?
而且,有没有人知道关于这类主题的任何好书?
答案 0 :(得分:0)
首先,低级别与高级别不是明确定义的语言属性。它倾向于用于指示原始机器功能的可访问性,语言提供的抽象功能,以及再次描述可用库的特定抽象级别。虽然这些方面可以说是相关的,但它们并不可靠 - 所以它们都不是另一个所必需的。
缺乏对机器原语的访问自然会降低通用性能编程的灵活性,但是没有这种访问的语言可以通过使用专用于该域的库和/或运行时来实现特定域的高性能(例如,NumPy和Matlab)线性代数的表现。)
糟糕的抽象设施使设计,开发,使用,重用和维护变得更加困难。这并不一定会直接影响潜在的性能 - 但实际上,在机制方面的努力并未用于提高性能。同样,缺乏高级库并不一定会直接影响性能,但基本设施的重建不良可能会产生同样的效果。
所以,回答你的问题:语言“级别”通常决定性能。但是,总有一个“但是......”
此外,“宽谱”语言(例如C ++)需要付出代价,这些语言将对原始功能的访问与良好的抽象设施和广泛的库相结合:复杂性和认知负载,其中(IMHO)是上述相关性的驱动因素。语言“层次”的不同方面。