我想知道由于高级编程语言(这里我认为 C 和 C++ 是高级语言),我们当前的硬件有多少潜在性能未被使用。
当然,我知道这是不可能的,而且完全没有生产力,但是如果所有东西(我的意思是从用户应用程序到内核的所有东西)都是手写的(由真正聪明的开发人员编写),我们可以从当前的硬件中挤出多少更多的性能 - 所以在机器代码中编写优化的)?
我们是在谈论单个百分点的性能提升吗?性能提高几个数量级?
只是想知道更好的软件是否可以比新节点技术(3nm 到 2nm)带来更多提升
您问题的答案取决于编程语言及其实现方式,具有很大的可变性。您拥有一种库开销较低的直接编程语言(如 C)并且拥有良好的优化器,假设遵循良好的编程实践,那么由于使用高级语言而几乎没有性能损失。一个好的编译器可以比程序员通常手动优化汇编语言更好的优化。
在 C 中,通过做一些愚蠢的事情(例如按值传递结构)可能会破坏性能。对于糟糕的编程,系统无能为力。
有些语言的库开销很高,例如采用垃圾收集进行内存管理。这会影响性能。
另一个步骤是解释性语言,它会带来更大的性能影响。
实际上,最大的性能影响往往来自内部硬件接口,而不是编程语言的固有问题。 CPU 往往比系统总线快得多,因此它们本身就浪费了大量的处理能力。新的苹果处理器正在尽一切努力来消除系统总线问题。