在谈到高级编程语言和低级编程语言之间的执行时间时,我经常听说低级编程语言比高级编程语言执行得更好。
当然,根据程序员和算法的不同,低级别的性能可能比高级别的性能差。但是如果我们使用最少的代码来完成不同的任务。会不会由于不同语言的抽象级别而导致执行时间上的差异?
还有,有没有人知道关于这类主题的好书?
发布于 2013-03-23 08:27:28
首先,低级与高级不是一个定义良好的语言属性。它倾向于用来指原始机器功能的可访问性,指语言提供的抽象设施,并再次用来描述可用库的特定抽象级别。虽然这些方面可以说是相关的,但它们并不是可靠的--它们中的任何一个都不是必须的。
缺乏对机器原语的访问自然会移除通用性能编程的灵活性,但没有这种访问的语言可以通过使用特定域专用的库和/或运行时来实现特定域的高性能(例如,具有线性代数的NumPy和Matlab性能)。
糟糕的抽象设施使得设计、开发、使用、重用和维护变得更加困难。这并不一定会直接影响潜在的性能--但实际上,投入到机制中的精力并没有用于提高性能。同样,缺少高级别的库不一定会直接影响性能,但基本功能的重新实现如果构建得很差,也会产生同样的效果。
所以,回答你的问题:语言“水平”在任何方面都不能决定性能。但是,总是有一个“但是”..。
此外,像C++这样的“广谱”语言也有成本,它们将对原始功能的访问与良好的抽象设施和广泛的库结合在一起:复杂性和认知负载,这是上述语言“级别”不同方面之间相关性的驱动因素。
https://stackoverflow.com/questions/15565634
复制相似问题