为什么说C/C++语言相较于其他语言在程序执行上效率更高?

从两个方面来分析这个问题

1. 编译型语言与解释型语言(C/C++与python的比较)

  • python是一种解释型语言,所谓解释型语言,就是代码并不会一次性将整个程序转换成机器码运行,而是由解释器逐行解释逐行执行。

  • C/C++是编译型语言,先将整个程序编译链接成可执行程序之后才会执行。
    所以,从效率角度上来说,编译型语言要比解释性语言的执行效率高。

2. 托管与非托管(C/C++与C#, Java的比较)

  • C#属于托管语言。所谓托管语言是指代码在运行时是受CLR(Common Language Runtime)管理和控制的。同理,所谓托管代码,就是由CLR来管理和执行的代码。CLR来负责处理内存管理,垃圾回收,安全性等问题。具体而言,C#编写的代码在编译之后会转换为中间语言(IL)代码,也就是托管代码,然后这些代码由CLR来加载和运行。C#语言要想跨平台运行,对应的平台上需要有对应的CLR。

  • 同理,Java也是一种托管语言,只不过它是在JVM(Java虚拟机)运行的,要想编写的代码能够跨平台运行,对应的平台需要支持JVM的使用。

  • C/C++属于是非托管语言,它是不受CLR(Common Language Runtime)管理和控制的,可以直接加载到系统内核运行,来操作计算机系统资源和硬件资源,但是对于内存和资源的分配以及释放需要开发人员手动处理,同时也更容易出现内存的泄露和安全问题。
    所以,从效率角度来说,非托管语言要比托管语言执行效率高。

posted @   小鬼1990  阅读(46)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示