托管代码和非托管代码的区别

托管代码:

   运行在CLR上的代码,成为托管代码.例如: C#编译为中间语言IL.IL在公共语言运行时(CLR)上运行.

 CLR相当于一个容器,提供安全检查,垃圾回收,JIT编译等功能.JIT根据不同的CPU得到的是不同的机器码.所以可以在不同的CPU上运行C#变异成的代码(IL).

 运行时,通过JIT(Just In Time)编译为机器语言.(CLR提供JIT编译器).CLR还提供垃圾回收和安全检查.

非托管代码:

   不是运行在CLR上的代码,成为非托管代码.如C++代码.非托管不享受托管代码的功能,例如垃圾回收,需要调用操作系统的垃圾回收机制.

原文地址:https://www.cnblogs.com/kingsmart/p/13607162.html