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

托管代码:

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

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

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

非托管代码:

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

posted @ 2020-09-03 13:54  留下成长的足迹  阅读(575)  评论(0编辑  收藏  举报