你是否也听说过“代码托管”这个术语,简单点来说,它是一种中间语言,就是执行过程交由运行时管理的代码,充当着翻译的作用。那么,代码托管与非托管代码有何区别?为方便大家了解,接下来就让小编来为大家简单介绍一下:
4 P, m( R* Y U2 s" t& F! [+ e& X! _. e! v7 v& {+ d& o' q+ W4 B' G
( N0 K8 S+ T* P1 v+ z" i
首先,非托管代码就是在Visual Studio .NET 2002发布之前所创建的代码。而托管代码直接编译成目标计算机的机械码,这些代码只能运行在编译出它们的计算机上,或者是其它相同处理器或者几乎一样处理器的计算机上。
. Q* g. h" u- v( m8 k& l/ A4 A5 l8 f2 k% R: z, A
- u, d# Z% P9 }; W7 T% g) Q 其次,非托管代码不能享受一些运行库所提供的服务,如安全和内存管理。如果非托管代码需要进行内存管理等服务,就必须显式地调用操作系统的接口。
( a/ Y9 B0 A, O6 B
+ j5 T! p6 d' [4 Q8 f) J! g" h( {) @, d g% r U, e
代码托管与非托管代码的区别包括:- n/ U o* m" x& @7 d
) T1 T- Q3 U; i5 M1 p; @
% R+ V4 A# _2 I 1、前者是一种中间语言,运行在CLR上;非托管代码被编译为机器码,运行在机器上。' n$ ]8 Y0 ~0 x1 X! l2 n! J9 Y
* F' c: [6 e% @) O" _8 C
% e9 e" p/ ?( n4 g7 ` @& T6 B 2、前者独立于平台和语言,能更好的实现不同语言平台之间的兼容;而非托管代码依赖于平台和语言。+ M7 X0 S5 p8 Y& V7 V: c
. D( e1 @' c3 k
d# h/ t. w/ @ 3、前者可享受CLR提供的服务(如安全检测、垃圾回收等),不需要自己完成这些操作;非托管代码需要自己提供安全检测、垃圾回收等操作。
& h7 k3 K1 T. G. t- g( b I r; @; {; e" q. B0 B$ H0 e4 B
) L4 d& v5 V; ^ ?: \
据小编了解到,面向中小企业、孵化中心,代码托管服务可实现协同开发。同时,多分支管理功能和合并请求功能,可彻底解决代码合并冲突的难题。+ s$ b: G2 Z0 x& ]7 L
6 p! H9 [: N D' J& e
9 \/ a( b% Z% y: {0 D
关于代码托管与非托管代码的区别,小编就先为大家简单的介绍到这里。极狐GitLab 专业代码管理服务平台,可以自动完成代码变更上线,可有效提升研发自主性与交付速度。若用户对上述内容还有其他疑问,可以通过极狐GitLab的官网来进一步咨询了解。8 f7 ]& p& Y% o/ G6 [0 O- Y
, v" ?! j, b/ z3 o |