选择编程语言对操作系统性能的影响
Posted
技术标签:
【中文标题】选择编程语言对操作系统性能的影响【英文标题】:Impact of choosing a programming language on the OS performance 【发布时间】:2018-11-06 19:23:34 【问题描述】:当所有编程语言都编译成一些 1 和 0 时,选择一种编程语言是否会决定性能
例如:printf(C 语言)vs cout(C++)vs print(Python 语言)
以上所有的都具有相同的二进制编译代码吗?
感谢任何有助于详细理解编程语言概念和硬件角色的帮助!在此先感谢
【问题讨论】:
存在差异,因为 C 和 C++ 被编译成汇编语言指令,而 Python 被解释 - 请参阅 ***.com/questions/2657268/…。不同的 C 和 C++ 编译器也可能以不同的方式编译语言结构...... 【参考方案1】:编译成什么样的二进制代码取决于编译器。对于 C 和 C++,有几十种不同的编译器可能会生成不同的二进制代码。除此之外,大多数编译器甚至具有对生成的二进制代码有很大影响的优化标志。
Python 甚至没有直接编译成“机器码”,而是编译成 Python 解释器的字节码。 Python 解释器本身是一个在机器上运行的程序,然后读取 python 字节码并可能通过内部调用预定义函数(机器代码中已经存在)来执行它
【讨论】:
【参考方案2】:编程语言的选择会对代码的性能、可移植性、可比性以及将目标放入代码的难易程度等产生很多影响。为了直接回答您的问题,如果 C 和 C++ 都是针对相同的目标环境完成的,那么它们在打印输出时可能会产生“相同的二进制文件”。 Python 是不同的,因为它是一种解释型语言,这意味着代码由使用架构本机代码编写的程序读取并据此采取行动。在这方面,Python 是一个边缘案例,因为它在技术上是在执行时(并且可以在分发之前)编译成一个原则上类似于 Java 字节码的中间代码,只有 Python 解释器才能理解。
您在 C 等低级语言与 Java、Python 甚至 javascript 等高级语言之间提出的区别在于,它们的执行本质是由本机硬件或解释器完成的。语言在裸机上运行通常被认为比在解释器上运行更快,因为解释器需要时间来理解代码并使用它自己的系统资源。 Java 倾向于打破这一规则,因为它的解释器是一个完整的虚拟机,可以理解非常简单的字节码,使其在速度上与 C 等语言相比具有竞争力。
【讨论】:
以上是关于选择编程语言对操作系统性能的影响的主要内容,如果未能解决你的问题,请参考以下文章