0

如果我需要改写:

用低级语言编写的程序在性能方面是否本质上更好,或者最终真的没有区别?

4

2 回答 2

1

除了马丁所说的,当一种高级语言通过编译器时,它本质上被分解为机器可以理解的更简单的指令。编译器的好坏取决于您拥有的编译器。有些编译器允许很好的优化,而有些是准系统。最后,它们都归结为机器级代码。从代码到机器级代码的转换是真正发生速度转换的地方,这是由编译器完成的。

想象一下有两个从英语到西班牙语的翻译。想象一下,你告诉他们翻译一个短语。这句话可能会在翻译中丢失。一位译者最终可能会成为一名更好的译者。与编译器相同。

尽管翻译有一些细微的变化,但您仍然可以传达您的信息。在编程世界中也是如此。当您有一个高级应用程序时,将所有内容都写成机器代码是没有意义的,因为那将是非常低效的。编译器在汇编级别比较方面也变得非常好。

同样,这一切都取决于最终应用程序以及什么是有意义的。

于 2013-06-25T18:38:33.937 回答
1

简单的答案 - 这取决于!

如果您的意思是低级语言,那么直接编译为代码的语言(C/C++/Fortran)可能比需要虚拟机的语言(Java/C#/Python)运行得更快。

在实践中,基于 VM 的高级语言传统上并没有用于要求最高性能的地方——因此高性能 Fortran 比高性能 C# 付出了更多的努力。这也意味着有 HPC 需求的人通常不会选择 Java/C#,因此在这些系统上不可用,依此类推......

随着虚拟机变得更智能,这种情况可能会改变。PyPy 是一个经典的例子,它是用 python 编写的 python,它应该是无用的慢 - python 不是一种快速的语言,用它自己而不是 C 编写它应该很糟糕,但它通常更快,因为它可以分析和预编译某些部分必须在运行时解析的程序。类似地,您可以想象一个 C# VM 识别某些评论任务并自动将它们转换为并行 GPU 操作。

于 2013-05-27T15:38:28.613 回答