你是否也听说过“代码托管”这个术语,简单点来说,它是一种中间语言,就是执行过程交由运行时管理的代码,充当着翻译的作用。那么,代码托管与非托管代码有何区别?为方便大家了解,接下来就让小编来为大家简单介绍一下:
( _6 g6 _4 V( z) V6 o! p; [( \! w; m
6 ^: Q7 \+ V* B! k
I0 A, C, |4 l! d# L 首先,非托管代码就是在Visual Studio .NET 2002发布之前所创建的代码。而托管代码直接编译成目标计算机的机械码,这些代码只能运行在编译出它们的计算机上,或者是其它相同处理器或者几乎一样处理器的计算机上。! H6 S& r! I) T, k9 P( v
1 V* B) Z+ R4 P f/ i; P
7 ]. I! `: B" ~4 x/ Z
其次,非托管代码不能享受一些运行库所提供的服务,如安全和内存管理。如果非托管代码需要进行内存管理等服务,就必须显式地调用操作系统的接口。
; ~( r$ u9 g5 N
* u, T+ t1 p" r' Z0 Z! q* ]' d( A" i& f
代码托管与非托管代码的区别包括:% P5 @ F2 t- h
) A: Y% e9 A! I2 G
6 d9 S: V' i1 Y# B% g 1、前者是一种中间语言,运行在CLR上;非托管代码被编译为机器码,运行在机器上。0 l& V: x! z) z+ J
8 R: O7 \) s3 B$ w1 ?; L3 B! i% Z$ \! T
2、前者独立于平台和语言,能更好的实现不同语言平台之间的兼容;而非托管代码依赖于平台和语言。5 R+ s0 H, O4 Z4 J& G0 A# y! E
4 D6 \& L5 V( M% r' I
; X& l4 M m4 x 3、前者可享受CLR提供的服务(如安全检测、垃圾回收等),不需要自己完成这些操作;非托管代码需要自己提供安全检测、垃圾回收等操作。
, R$ F7 a* M( ]: F& X& e4 ^, g! V3 W$ z+ v- c4 `
' o, h7 Q' s1 S. o+ h
据小编了解到,面向中小企业、孵化中心,代码托管服务可实现协同开发。同时,多分支管理功能和合并请求功能,可彻底解决代码合并冲突的难题。& R, T* ~& L( l& F
" i0 _: Q$ ~& }$ n8 b
0 o) J8 X8 J8 G3 i& H4 v/ i 关于代码托管与非托管代码的区别,小编就先为大家简单的介绍到这里。极狐GitLab 专业代码管理服务平台,可以自动完成代码变更上线,可有效提升研发自主性与交付速度。若用户对上述内容还有其他疑问,可以通过极狐GitLab的官网来进一步咨询了解。
4 z/ J9 r' g. t8 ]
) X/ h2 O3 R& W z9 c: |1 `2 I |