你是否也听说过“代码托管”这个术语,简单点来说,它是一种中间语言,就是执行过程交由运行时管理的代码,充当着翻译的作用。那么,代码托管与非托管代码有何区别?为方便大家了解,接下来就让小编来为大家简单介绍一下:
! |% y: g0 ~( T' s% ~( m1 V: R9 E. M
7 L) R, K- m4 Y; z! F 首先,非托管代码就是在Visual Studio .NET 2002发布之前所创建的代码。而托管代码直接编译成目标计算机的机械码,这些代码只能运行在编译出它们的计算机上,或者是其它相同处理器或者几乎一样处理器的计算机上。
$ ~' G8 D: w" f+ w: O( F7 e' E, x, f! y6 i2 l
1 @/ `0 e7 K1 |5 p$ s( C' W6 G 其次,非托管代码不能享受一些运行库所提供的服务,如安全和内存管理。如果非托管代码需要进行内存管理等服务,就必须显式地调用操作系统的接口。
% |' ?9 D& h( u) J( F% }8 g& j
9 \8 q% p' p2 y: X* j+ X0 R8 z: S! x" h: h! Y
代码托管与非托管代码的区别包括:
. N. E! H" n# J" W& y/ ]8 t# d( l! d. X9 T
. b, M# \! `: o% v0 Z z* j
1、前者是一种中间语言,运行在CLR上;非托管代码被编译为机器码,运行在机器上。
. |8 X" x; u% Y9 [( J0 U9 u
% V- q# k5 K' A, e0 D$ ]9 {& ?0 d# I: k8 P4 Z" L! A
2、前者独立于平台和语言,能更好的实现不同语言平台之间的兼容;而非托管代码依赖于平台和语言。
: V0 F Q# F( h9 a2 X& P* P0 ~) p% X8 R! J8 s
; q: G% l" O+ {! }, Q 3、前者可享受CLR提供的服务(如安全检测、垃圾回收等),不需要自己完成这些操作;非托管代码需要自己提供安全检测、垃圾回收等操作。
8 b7 X G' |/ Z5 s% G' ]
4 E# k7 h) E4 F- t- X2 g7 x9 Q3 L. l
据小编了解到,面向中小企业、孵化中心,代码托管服务可实现协同开发。同时,多分支管理功能和合并请求功能,可彻底解决代码合并冲突的难题。
9 s4 `5 O1 {: |9 z
[, j* u- x" V
7 n( s5 I5 f7 T 关于代码托管与非托管代码的区别,小编就先为大家简单的介绍到这里。极狐GitLab 专业代码管理服务平台,可以自动完成代码变更上线,可有效提升研发自主性与交付速度。若用户对上述内容还有其他疑问,可以通过极狐GitLab的官网来进一步咨询了解。
! l4 O7 x, V1 S6 p7 u6 r5 |
2 R+ K- R+ _4 B! v4 Z: R' _ |