找回密码
 加入怎通
查看: 284|回复: 4

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

[复制链接]
ningxueqin 发表于 2024-06-26 11:25:39 | 显示全部楼层 |阅读模式
  你是否也听说过“代码托管”这个术语,简单点来说,它是一种中间语言,就是执行过程交由运行时管理的代码,充当着翻译的作用。那么,代码托管与非托管代码有何区别?为方便大家了解,接下来就让小编来为大家简单介绍一下:
+ r  e( u; i8 q* k. ?
% c" `" n. g. ~1 y  s
5 A8 W; v0 B* i7 O8 E: \
  首先,非托管代码就是在Visual Studio .NET 2002发布之前所创建的代码。而托管代码直接编译成目标计算机的机械码,这些代码只能运行在编译出它们的计算机上,或者是其它相同处理器或者几乎一样处理器的计算机上。
: D3 l, K/ x. [4 @9 G% E: A6 D1 e+ C. S' z( r, `" P" s

2 N" J0 c! x# c9 a* B  其次,非托管代码不能享受一些运行库所提供的服务,如安全和内存管理。如果非托管代码需要进行内存管理等服务,就必须显式地调用操作系统的接口。$ _# `  P2 w) C- {5 o

0 h" l/ g8 ~9 D: U; q

3 _* J( D/ M& x; S  代码托管与非托管代码的区别包括:
% f. B$ _' g) L$ m! @
5 u" A% e5 ~- \6 E. Z4 }
: a- ?3 V8 h1 u( A( @4 j5 ^# i
  1、前者是一种中间语言,运行在CLR上;非托管代码被编译为机器码,运行在机器上。+ F. Q1 r8 N3 b/ ]  i

0 d2 s6 q; Y+ p" J
2 @* C3 o3 ~" N8 t. `: g
  2、前者独立于平台和语言,能更好的实现不同语言平台之间的兼容;而非托管代码依赖于平台和语言。
# H# \& p8 b% t0 T% n9 a; e+ I' Z+ l: `( x5 J& V% F2 m

. ?3 H/ H- w& _- T( ?" R  3、前者可享受CLR提供的服务(如安全检测、垃圾回收等),不需要自己完成这些操作;非托管代码需要自己提供安全检测、垃圾回收等操作。
& Z, |/ |9 [& b9 u7 L+ x
6 p' C- Y0 p* |% r6 K

5 {6 N0 y1 h9 c. a: {; Y  据小编了解到,面向中小企业、孵化中心,代码托管服务可实现协同开发。同时,多分支管理功能和合并请求功能,可彻底解决代码合并冲突的难题。8 S5 E" Z# M1 ]0 s7 O) t
+ Z8 i3 |& S$ I7 |9 v2 u

3 x. V. c9 m8 A3 v1 R  o4 Q. p  关于代码托管与非托管代码的区别,小编就先为大家简单的介绍到这里。极狐GitLab 专业代码管理服务平台,可以自动完成代码变更上线,可有效提升研发自主性与交付速度。若用户对上述内容还有其他疑问,可以通过极狐GitLab的官网来进一步咨询了解。
8 U* w$ Q4 Z8 m+ f* Q2 Q1 |" R$ Q# n, F0 q0 c1 h

暂时无法加载帖子列表

回复

使用道具 举报

卟顽正 发表于 2026-08-06 17:57:48 | 显示全部楼层
刚好遇到类似问题,看完这个帖子心里有底了
回复

使用道具 举报

米粒王米粒 发表于 2026-08-06 18:04:27 | 显示全部楼层
学习到了,之前一直没注意过这个点,受教了
回复

使用道具 举报

xf2008cgm 发表于 2026-08-07 06:03:24 | 显示全部楼层
这个思路很新颖,打开了新世界的大门,谢谢分享
回复

使用道具 举报

西万路小混混 发表于 2026-09-18 22:41:27 | 显示全部楼层
这个分享太实用了,刚好能用到,感谢楼主!
回复

使用道具 举报

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

    本版积分规则

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

    GMT+8, 2026-9-21 15:32 , Processed in 0.060038 second(s), 28 queries , Gzip On.

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

    Powered by Discuz! X3.5

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