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

  • 相关阅读:
    62. Unique Paths (JAVA)
    60. Permutation Sequence (JAVA)
    56. Merge Intervals (JAVA)
    53. Maximum Subarray (JAVA)
    Java的volatile
    int和Integer的区别
    Java线程
    spark搭建部署
    spark源码编译
    Scala隐式转换和隐式参数
  • 原文地址:https://www.cnblogs.com/mumuyu/p/3388140.html
Copyright © 2020-2023  润新知