找回密码
 加入怎通
查看: 255|回复: 0

代码托管与非托管代码有何区别?

[复制链接]
ningxueqin 发表于 2024-06-26 11:25:39 | 显示全部楼层 |阅读模式
  你是否也听说过“代码托管”这个术语,简单点来说,它是一种中间语言,就是执行过程交由运行时管理的代码,充当着翻译的作用。那么,代码托管与非托管代码有何区别?为方便大家了解,接下来就让小编来为大家简单介绍一下:
! q: f3 l8 ?+ C$ }. x
) r+ D/ h9 L1 S+ ^# e. {% O5 u

0 w4 M$ I2 h7 Y7 N! {  首先,非托管代码就是在Visual Studio .NET 2002发布之前所创建的代码。而托管代码直接编译成目标计算机的机械码,这些代码只能运行在编译出它们的计算机上,或者是其它相同处理器或者几乎一样处理器的计算机上。0 f+ ~- E, q4 _
( l0 F4 O8 F0 K" M5 b
+ w: q! F; v6 G. N* S6 g) B( f
  其次,非托管代码不能享受一些运行库所提供的服务,如安全和内存管理。如果非托管代码需要进行内存管理等服务,就必须显式地调用操作系统的接口。
7 C8 D4 [1 }* g0 g& m/ d' R' m2 R  ]/ t0 J4 ?3 c  [% V3 Y

9 U. \1 k  K9 l1 Y7 V  代码托管与非托管代码的区别包括:
# Z1 S3 b0 E6 W+ f8 d' c8 _% R7 H' R. K# }; @4 b
3 F1 Y/ j' W- j# A: {) i
  1、前者是一种中间语言,运行在CLR上;非托管代码被编译为机器码,运行在机器上。
9 d3 o7 \  F# }: O
, n( u; r$ L- T* L% R
+ Q" S/ @9 Z+ p1 u  d
  2、前者独立于平台和语言,能更好的实现不同语言平台之间的兼容;而非托管代码依赖于平台和语言。
' T$ B% o( F2 G* G2 h/ L( L/ V. t  J8 W* B5 f
/ Q% t& y2 u8 c1 o1 }, S! D$ B
  3、前者可享受CLR提供的服务(如安全检测、垃圾回收等),不需要自己完成这些操作;非托管代码需要自己提供安全检测、垃圾回收等操作。3 m0 w1 P7 l; X- U
, x9 r9 Q+ q) n  s4 F" s
0 q# _7 w4 [  ^1 X: n( f) {. W
  据小编了解到,面向中小企业、孵化中心,代码托管服务可实现协同开发。同时,多分支管理功能和合并请求功能,可彻底解决代码合并冲突的难题。
# ~2 q. [" r2 V! G" f8 k( L8 b6 u0 b7 u4 E' E& B! w) E
; ]* x; r3 E  w) X5 K0 k- A8 s
  关于代码托管与非托管代码的区别,小编就先为大家简单的介绍到这里。极狐GitLab 专业代码管理服务平台,可以自动完成代码变更上线,可有效提升研发自主性与交付速度。若用户对上述内容还有其他疑问,可以通过极狐GitLab的官网来进一步咨询了解。8 y+ j+ N) ?  C1 B
- W( y: ^9 F4 M' ]4 l$ h
回复

使用道具 举报

    您需要登录后才可以回帖 登录 | 加入怎通

    本版积分规则

    QQ|手机版|小黑屋|网站地图|真牛社区 ( 苏ICP备2023040716号-2 )

    GMT+8, 2026-3-22 20:27 , Processed in 0.063839 second(s), 23 queries , Gzip On.

    免责声明:本站信息来自互联网,本站不对其内容真实性负责,如有侵权等情况请联系420897364#qq.com(把#换成@)删除。

    Powered by Discuz! X3.5

    快速回复 返回顶部 返回列表