zoukankan      html  css  js  c++  java
  • 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编译也可以完成优化工作,而且还可以优化代码所运行的特定处理器。

  • 相关阅读:
    sql中添加唯一索引(非主键)
    Ubuntu 安装 LAMP 主机之后运行出现乱码
    编写安全 PHP 应用程序的七个习惯
    首先在服务器上安装ssh的服务器端
    php安全简析
    正确的Linux菱形乱码修改方法
    php安全
    变量作用域
    bind9 详细解析
    DNS和DHCP服务器
  • 原文地址:https://www.cnblogs.com/mumuyu/p/3388140.html
Copyright © 2011-2022 走看看