C# 代码为什么比 C++代码 编译速度快?

背景:我们的项目是一个三维gis的CS系统,底层用c++ 封装com控件供上层c#调用,C++ 项目有20+个,C#项目也有20+个;vs2010 单独rebuild C++项目需要半个小时左右(用分布式编译需要5分钟左右,现在基本都采用分布式编译),而c#项目不到一分钟。今天有个同事问我为什么C++ 和 C#编译速度差别这么大?

          注:推荐一款分布式编译软件 Incredibuild,安装的人越多,编译越快。 

我的解释如下,有不对的地方欢迎补充指正:

1、C#是把代码先编译为IL语言,而在运行时有CLR转换为平台专用代码;而C++是直接编译为内部机器可执行代码。

2、IL语言是即时编译的(JIT编译),它不是把整个应用程序一次编译完,而是只编译它调用的部分代码。

    代码编译过一次后,得到的内部可执行代码就存储起来,直到程序退出该应用程序。

3、传统的编译器会进行代码优化,但这个优化是独立于代码所运行的特定处理器的。

     JIT编译也可以完成优化工作,而且还可以优化代码所运行的特定处理器。

 

 

 

转载于:https://www.cnblogs.com/mumuyu/p/3388140.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值