你是否也听说过“代码托管”这个术语,简单点来说,它是一种中间语言,就是执行过程交由运行时管理的代码,充当着翻译的作用。那么,代码托管与非托管代码有何区别?为方便大家了解,接下来就让小编来为大家简单介绍一下:- w4 G+ ^( x' z, V# ]1 T
# x- F. k* S! B* K" O i* B
: o5 ]6 s+ t( A, Y6 a4 ]1 Q* X/ l 首先,非托管代码就是在Visual Studio .NET 2002发布之前所创建的代码。而托管代码直接编译成目标计算机的机械码,这些代码只能运行在编译出它们的计算机上,或者是其它相同处理器或者几乎一样处理器的计算机上。
# k1 S" D p& ?$ A- W7 l) z( L
. C+ Y' L- ~3 h; _1 E# I$ E7 A5 g
+ z$ L3 H! R5 H0 I; B7 s 其次,非托管代码不能享受一些运行库所提供的服务,如安全和内存管理。如果非托管代码需要进行内存管理等服务,就必须显式地调用操作系统的接口。
9 t* X+ Y$ [4 n$ ]5 |* S
- a* S1 B) U7 z% Q3 b1 O$ i3 C7 m8 U
代码托管与非托管代码的区别包括:2 b2 G" J- x& l
: H0 n9 A5 J# Q
* s% r' j% V, \0 x2 B! g
1、前者是一种中间语言,运行在CLR上;非托管代码被编译为机器码,运行在机器上。; w; _$ ^' G7 \
' q/ K% g7 r, x* w1 z+ n
% G5 B: E( D5 [2 w6 l/ I' u3 {" o/ P 2、前者独立于平台和语言,能更好的实现不同语言平台之间的兼容;而非托管代码依赖于平台和语言。! t/ ~* o0 J/ b' y5 R- I
3 e! `5 _' x+ \
) K- e7 `1 @& D9 O 3、前者可享受CLR提供的服务(如安全检测、垃圾回收等),不需要自己完成这些操作;非托管代码需要自己提供安全检测、垃圾回收等操作。
8 p9 S; \8 Q+ p
5 P8 a% q/ J, S
2 i$ o# U/ N; u' D, Z 据小编了解到,面向中小企业、孵化中心,代码托管服务可实现协同开发。同时,多分支管理功能和合并请求功能,可彻底解决代码合并冲突的难题。8 G8 s$ T# ?5 e; O9 b4 c
4 m# N7 _7 v& y# Y
7 G6 G& ~- d( k- ]& L
关于代码托管与非托管代码的区别,小编就先为大家简单的介绍到这里。极狐GitLab 专业代码管理服务平台,可以自动完成代码变更上线,可有效提升研发自主性与交付速度。若用户对上述内容还有其他疑问,可以通过极狐GitLab的官网来进一步咨询了解。
+ U7 P9 r6 h$ z; \' h( a& D
& F. z- C9 g- i$ z( j6 ^ |