你是否也听说过“代码托管”这个术语,简单点来说,它是一种中间语言,就是执行过程交由运行时管理的代码,充当着翻译的作用。那么,代码托管与非托管代码有何区别?为方便大家了解,接下来就让小编来为大家简单介绍一下:
; m! ^( D% r% O$ a# i0 G# g/ m: |- D B% w9 E
. n7 O/ W% q: Y0 Y
首先,非托管代码就是在Visual Studio .NET 2002发布之前所创建的代码。而托管代码直接编译成目标计算机的机械码,这些代码只能运行在编译出它们的计算机上,或者是其它相同处理器或者几乎一样处理器的计算机上。
; W# c* ]$ z5 N+ P& A1 @$ B0 \) U8 |& h6 @' q
! R6 @* o d5 i$ ]3 T" N. o$ b 其次,非托管代码不能享受一些运行库所提供的服务,如安全和内存管理。如果非托管代码需要进行内存管理等服务,就必须显式地调用操作系统的接口。" |4 R9 J5 F. m: a2 S
& R6 v8 u# d4 z0 n: F2 W/ Z* o8 X o k0 |/ U, _% X i4 a" @( B
代码托管与非托管代码的区别包括:0 ~, O, k2 z' q/ s* H6 F2 O. c$ u
: {2 p1 V& `6 n4 a* }/ K8 v2 S2 H1 z; r/ @/ k- d, O1 L
1、前者是一种中间语言,运行在CLR上;非托管代码被编译为机器码,运行在机器上。
7 s; W! R8 ~7 d0 v1 U) _7 }2 r8 g3 Z- D% [3 J. o: p
) m$ j! t( u' I& S 2、前者独立于平台和语言,能更好的实现不同语言平台之间的兼容;而非托管代码依赖于平台和语言。
U5 ?1 l. I3 O& n9 m C2 H% y8 N9 Z- f8 N; x( G+ |
2 v& b. \/ k! B& a/ _* B$ q' _
3、前者可享受CLR提供的服务(如安全检测、垃圾回收等),不需要自己完成这些操作;非托管代码需要自己提供安全检测、垃圾回收等操作。" D0 }* C' |" W; y9 [8 X- M$ H
0 I- |1 V0 ?- k. N2 Y4 a
; G" [5 p5 s, C9 s3 _' W 据小编了解到,面向中小企业、孵化中心,代码托管服务可实现协同开发。同时,多分支管理功能和合并请求功能,可彻底解决代码合并冲突的难题。; y. h" [0 V, U7 o
& b3 L6 D: B4 c
# n: v7 F( t; g( W
关于代码托管与非托管代码的区别,小编就先为大家简单的介绍到这里。极狐GitLab 专业代码管理服务平台,可以自动完成代码变更上线,可有效提升研发自主性与交付速度。若用户对上述内容还有其他疑问,可以通过极狐GitLab的官网来进一步咨询了解。
+ i3 ^+ d2 d' J
G- v# F/ |# Z9 V: n! u |