首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

什么是托管代码和非托管代码?

托管代码和非托管代码是两种不同的代码类型,主要区别在于它们的运行环境和编译方式

  1. 托管代码(Managed Code): 托管代码是在公共语言运行库(CLR,Common Language Runtime)环境下执行的代码。CLR 是 Microsoft .NET 框架的一部分,它负责管理托管代码的执行,为代码提供内存管理、安全处理、异常处理等功能。使用 CLR 可以提高代码的安全性和可移植性。

托管代码通常使用 C#、VB.NET 等 .NET 支持的语言编写,这些语言的语法和运行环境都受到 CLR 的支持。托管代码在编译时会被转换为中间语言(Intermediate Language,IL),然后在运行时由 CLR 的即时编译器(JIT)将 IL 转换为目标机器上的机器码并执行。

  1. 非托管代码(Unmanaged Code): 非托管代码是在 CLR 之外,直接在操作系统上运行的代码。非托管代码通常使用 C、C++、汇编等编程语言编写,不依赖于 CLR 提供的环境。非托管代码需要手动管理内存分配和释放,处理安全和异常情况。

非托管代码通常具有更高的性能和更低的抽象层次,可以直接操作硬件和系统资源。但同时,非托管代码也需要开发者处理更多底层细节,如内存泄漏、缓冲区溢出等安全风险。

总之,托管代码和非托管代码的主要区别在于运行环境和编译方式。托管代码运行在 CLR 环境中,由 CLR 提供内存管理和安全处理等功能;而非托管代码直接在操作系统上运行,需要手动管理资源和处理底层细节。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

C#托管代码和非托管代码

含义 托管/非托管是微软的.net framework中特有的概念。 非托管代码:也叫本地(native)代码。 托管代码:是由公共语言运行库(CLR)执行的代码,而不是由操作系统直接执行。...程序实际上是被“托管”在公共语言运行库中。随着程序集的运行,公共语言运行库会持续地提供各种服 务,例如内存管理、安全管理、线程管理等等。和托管资源/非托管资源不同,不要弄混。...托管代码的优点 1.跨平台。...有关内存管理(内存申请,内存释放,垃圾回收之类的)全部都是.net的CLR来管理 2.更加安全,不会出现诸如内存泄露之类的问题 托管代码的缺点 1.对程序的性能也产生一定的影响。...CLR首次加载程序集代码时,JIT将IL编译成本地代码时,会对其进行代码优化,这类似与非托管C++编译器的后端所做的事情.这可能也会花费加多的时间生成优化代码。 2.不能直接读取内存,不够灵活

3.6K30

托管代码与非托管代码

什么是托管代码(managed code)?      ...什么是非托管代码(unmanaged code)?       非托管代码就是在Visual Studio .NET 2002发布之前所创建的代码。...托管代码直接编译成目标计算机的机械码,这些代码只能运行在编译出它们的计算机上,或者是其它相同处理器或者几乎一样处理器的计算机上。非托管代码不能享受一些运行库所提供的服务,例如安全和内存管理等。...2、托管代码独立于平台和语言,能更好的实现不同语言平台之间的兼容;           非托管代码依赖于平台和语言。     ...托管代码与非托管代码的性能比较       基本上每个人都知道的是,所有.Net语言都将被编译成为一个叫做IL汇编的中间语言。

4.6K30
  • 【Git】什么是Git以及码云代码托管服务

    本期介绍 本期主要介绍什么是Git以及码云代码托管服务 文章目录 1. 前言 1.1 什么是Git 1.2 使用Git能做什么 2. Git概述 2.1 Git简介 2.2 Git下载与安装 3....前言 1.1 什么是Git Git是一个分布式版本控制工具,主要用于管理开发过程中的源代码文件(Java类、xml文件、html页面等),在软件开发过程中被广泛使用。...Git代码托管服务 3.1 常用的Git代码托管服务 Git中存在两种类型的仓库,即本地仓库和远程仓库。那么我们如何搭建Git远程仓库呢?...,故名gitHub 码云 Gitee - 基于 Git 的代码托管和研发协作平台 国内的一个代码托管平台,由于服务器在国内,所以相比于GitHub,码云速度会更快 GitLab The One DevOps...for teams using Jira 一家源代码托管网站,采用Mercurial和Git作为分布式版本控制系统,同时提供商业计划和免费账户 3.2 码云代码托管服务 码云网址:Gitee - 基于

    1.3K10

    六、CLR下的托管代码应用程序与非托管代码程序之间的性能对比

    1、托管程序二次编译的问题,以及微软做的优化 五、CLR加载程序集代码时,JIT编译器对性能的产生的影响中介绍了CLR下托管应用程序的二次编译对性能产生的影响.事实上,在IL编译成本机代码的时候的时候...但是,在微软做了大量的性能优化工作之后,将这些额外的开销保持在最低的限度之内. 2、托管程序的实际性能 事实上,托管程序的性能实际上要比非托管应用程序要好,举个例子,当JIT编译器在运行时将IL代码编译器编译成本机代码的时候...,编译器对执行环境的认识比非托管编译器更深刻。...如果JIT编译器没有使托管应用程序达到应有的效果,如果需要进一步确认,有两种方法: (1)、.Net Framework SDK提供的NGen.exe工具 该工具将程序集的所有的IL代码编译成本机代码,...如果是,CLR就加载预编译版本. 注:NGen.exe对最终执行环境的预设是很保守的,所以,NGen.exe生成的代码不会像JIT编译器生成的代码那样进行高度优化。

    91340

    那些代码托管服务平台

    github在为支持私有项目之前,很多的代码都是基于bitbucket托管的。整体体验也还算ok。不过有段时间bitbucket服务貌似周期性被墙,尤其是登录跳转,异常的恶心。...在bitbucket上托管的代码基本都是非公开的项目,包含各种图片站的爬虫,语音助理等。 Bitbucket 对于个人以及最多具有 5 位用户的小型团队是免费的,并提供无限制的公共和私人存储库。...您还可以获得 LFS 的 1 GB 文件存储和 50 分钟的构建时间,以便开始使用 Pipelines。您可以在工作区与所有用户共享构建分钟数和存储。...不管是修改hosts文件还是通过梯子来提交代码,终归是有点不太稳定,尤其是最近梯子经常挂。导致我现在连福利视频爬虫都停了,没法抓取。 当然,国内也有代码托管平台,但是个人觉得终究有那么亿点点的不信任。...如果后期还是经常服务不稳定,那就考虑在nas上自建代码托管服务了。

    2.3K20

    部署GitLab代码托管仓库

    GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,GitLab是使用Ryby开发的一个开源的版本管理系统,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目....它拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释.可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库.团队成员可以利用内置的简单聊天程序(Wall)进行交流.它还提供一个代码片段收集功能可以轻松实现代码复用...Git 与 SVN 区别点 1、GIT是分布式的,SVN不是:这是GIT和其它非分布式的版本控制系统,例如SVN,CVS等,最核心的区别. 2、GIT把内容按元数据方式存储,而SVN是按文件:所有的资源控制系统都是把文件的元信息隐藏在一个类似...缺少的最大的一个特征. 5、GIT的内容完整性要优于SVN:GIT的内容存储使用的是SHA-1哈希算法.这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏....PM在gitlab上查看提交和代码修改情况,确认无误后,确认将开发人员的分支合并到主分支(master). 开发人员在gitlab上Mark done确认开发完成,并关闭issue.

    1.8K20

    常用的Git代码托管服务

    常用的Git代码托管服务 前面我们已经知道了Git中存在两种类型的仓库,即本地仓库和远程仓库。那么我们如何搭建Git远程仓库呢?...我们可以借助互联网上提供的一些代码托管服务来实现,其中比较常用的有GitHub、码云、GitLab等。...gitHub( 地址:https://github.com/ )是一个面向开源及私有软件项目的托管平台,因为只支持Git 作为唯一的版本库格式进行托管,故名gitHub 码云(地址: https://gitee.com.../ )是国内的一个代码托管平台,由于服务器在国内,所以相比于GitHub,码云速度会更快 GitLab (地址: https://about.gitlab.com/ )是一个用于仓库管理系统的开源项目,...在企业实际开发中,一个项目往往是由多个人共同开发完成的,为了使多个参与者都有权限操作远程仓库,就需要邀请其他项目参与者成为当前仓库的成员。

    1.5K40

    代码托管你只知道 GitHub?

    文章目录 1.前言 2.GitHub 3.GitLab 3.BitBucket 4.小结 参考文献 1.前言 对于个人开发者,不可避免的会有代码存储的需求。...你可能对全球最大的同性交友平台 GitHub 并不陌生,它是开源项目最喜欢的托管平台。要想托管代码,如果你只知道 GitHub,那下面这两款你真的应该了解一下。...GitLab BitBucket 下面我们对三个代码托管平台做个评比。 2.GitHub GitHub 当下大红大紫,主要在于其社交性质和拥有众多的开源项目。...适合小团队托管私有项目。 4.小结 GitHub 适合开源项目管理。不缺钱的同学,私有项目也适合统一在 GitHub 管理。 GitLab 和 BitBucket 都很适合私有项目的管理。...GitLab 是开源项目,活跃程度很高,未来很有潜力,如果不在乎那些小硬伤,个人更推荐 GitLab。

    1K20

    什么是网站托管服务?网站托管服务的内容都包含哪些

    网站托管服务是目前很多中小企业选择的外包服务之一,当然也依然有很多人对什么是网站托管服务并不了解,接下来小编为大家分享网站托管服务是指什么、都有哪些类型、什么企业适用以及具体有哪些服务内容,一起来看看吧...图片 一、网站托管服务是指什么 网站托管服务就是为企业网站提供第三方托管代运营维护,服务内容包括网站维护、更新、SEO、运营和推广。...网站托管服务不仅让企业获得持专业的、持续的网站建设和网络营销服务,还为企业方节省多个专业技术人员的工资费用,大大降低了企业经营成本。...,专门请一个人来做这些却显得资源的浪费,所以网站托管是一条便捷、高效、省钱的方式!...总结:关于“什么是网站托管服务?网站托管服务的内容都包含哪些”的内容小编就分享到这了,希望对你选择网站托管服务有所帮助,如您对网站托管服务有什么疑问也可以选择优化猩SEO进行咨询。

    4K20

    如何将代码托管到Github

    Github是最火热的源代码管理平台,你可以通过这个平台,将代码托管起来,防止代码丢失,或者将自己的代码展示给世界。 首先要下载Git,请自行在各大应用平台下载。...如果你是初学者,没用过Github,要上传代码的话,就要先创建一个代码库, 按照下图,点击new,新建一个库,下面以我的MyProductions代码库为例。...第一次提交代码,需要将你要提交的目标代码库克隆到本地,找到一个新的文件夹,右键,打开Git Bash Here 初始界面如下: 输入 git clone url,url的获取方式,如下图...,找到你的目标代码库,然后点击Code,复制粘贴到命令行中 静待克隆完成,克隆完成之后,这个文件夹就是你目标代码库的一个映像,把你要上传的代码复制到此 此处以上传 ASP.NetCore_Project..."(必要) 会弹出好多条数据,这些数据都打上了注释的标记 最后一步:git push -u origin master 添加到你的master目录下 master是可指定的

    78930

    借助GitHub托管你的项目代码

    PS:话说自己注册了GitHub都很久了,却没有怎么去弄,现在系统学习一下,也把自己的学习经历总结下来share给大家,希望大家都能把GitHub用起来,把你的项目代码happy地托管起来!...那么收费的跟免费的有什么区别呢?私有的仓库只有自己或者指定的朋友才有权限操作。 ?   注册完成之后,记住要验证邮箱!如果未验证邮箱,那么你是没法做后续操作的。 ?...3.1 安装Git   可以去官网选择下载,这里使用的是Git-2.9.0 64位版本:点我下载   全程傻瓜化安装,下一步即可,可以把命令模式和图形界面模式都勾选上。 ?   ...3.4 使用Git管理远程仓库   我们刚刚提到Git的基本流程是工作区到暂存区再到Git仓库,那么Git仓库和远程仓库又是如何联系起来的呢? ?   ...(2)修改代码,按照老步骤提交到Git仓库   这里因为原始项目是啥也没有,所以我索性把我之前写的一个数据结构的Demo程序库直接拖动到了这个文件夹中。

    80031

    版本控制及代码托管平台综述

    综上,版本控制是工程中常用做法,而在软件工程中常用分布式版本控制,在分布式版本控制系统中, Git 最早是根据 Monotone 改写,但通过 Git 进行版本控制的软件源代码托管服务平台 GitHub...GitHub# GitHub是通过Git进行版本控制的软件源代码托管服务平台,由GitHub公司(曾称Logical Awesome)的开发者Chris Wanstrath、PJ Hyett和Tom Preston-Werner...GitHub同时提供付费账户和免费账户。这两种账户都可以创建公开或私有的代码仓库,但付费用户支持更多功能。根据在2009年的Git用户调查,GitHub是最流行的Git访问站点。...总结# 宗上,若公司内部搭建基于版本控制的代码存放网站,可使用私有服务器搭建 GitLab 实现代码托管及权限控制,在客户端使用 Git 进行代码版本控制及代码的拉取和提交。...,用于拉取、提交及对代码的版本控制;而 GitLab 则是远程的代码托管平台,管理员可对代码仓库进行权限控制保证代码安全。

    35050

    代码托管平台“码云”崩溃

    ​9月14日下午15:30起,疑似代码托管网站码云遭遇宕机。微博平台用户讨论“码云挂了”的讨论逐渐热门。...小编实际测试,通过 https 方式推送,或者拉取代码,显示: 【The requested URL returned error: 429】 通过查询http的状态码,可知是“请求过多”(Too Many...换一种方式,使用 ssh public key 的方式推送拉取仓库代码,显示: 【Authorization server is unavailable】 同时返回 500 的 http 状态码。...有几种可能,一种是负载过重,已经不能正常转发请求;一种是服务正在重启了。 从以上几个http状态码,推测码云服务器遭受流量攻击的可能性较高。我们等待官方给出解释吧。 ​...好消息是,截至 16:30左右,业务已经恢复。 通过此次gitee的宕机分析,我们应该对 http 状态码有更清晰的认识了。 还不熟悉的同学,可以去 MSDN 翻看一下手册,重温一下知识点。

    2K20

    代码托管从业者 Git 指南

    本文作者:李博文 - CODING 后端开发工程师 前言 六七年前,我机缘巧合进入了代码托管行业,做过基于 Git 支持 SVN 客户端接入、Git 代码托管平台分布式、Git 代码托管读写分离、Git...Git 的存储原理 对于代码托管从业人员来说,只了解 Git 的使用并不足以参与代码托管平台服务开发和架构优化等工作,所以了解 Git 的一些原理非常必要。...随着平台规模的增长,代码托管从业人员也会遇到一些问题难以解决,在我职业生涯中同样如此,解决问题的过程是艰辛的,去年年底,我曾经写过一篇文章:《性能,可扩展性和高可用 - 大型 Git 代码托管平台的关键问题...在讨论伸缩性之前,我们要解释一下分布式文件系统为什么不适合大型代码托管平台。 Git 的计算压力并没有随着分布式文件系统的扩展性而分摊。...主从同步,读写分离和多写高可用架构探讨 无论是公共代码托管平台还是私有化部署的代码托管服务,当代平台发展到一定程度,高可用这个问题就会被反复提及,分布式系统的架构设计难度较高,与传统的单机服务有很大的差别

    1.2K30

    代码托管从业者 Git 指南

    代码托管平台分布式、Git 代码托管读写分离、Git 代码托管高可用等工作,所幸学到了一些知识,积累了一些经验,本次分享我的一点经验之谈,希望对即将进入或者已在代码托管行业的朋友有所帮助。...Git 的存储原理 对于代码托管从业人员来说,只了解 Git 的使用并不足以参与代码托管平台服务开发和架构优化等工作,所以了解 Git 的一些原理非常必要。...,在我职业生涯中同样如此,解决问题的过程是艰辛的,去年年底,我曾经写过一篇文章:《性能,可扩展性和高可用 - 大型 Git 代码托管平台的关键问题》(https://forcemz.net/git/2020...在讨论伸缩性之前,我们要解释一下分布式文件系统为什么不适合大型代码托管平台。 Git 的计算压力并没有随着分布式文件系统的扩展性而分摊。...主从同步,读写分离和多写高可用架构探讨 无论是公共代码托管平台还是私有化部署的代码托管服务,当代平台发展到一定程度,高可用这个问题就会被反复提及,分布式系统的架构设计难度较高,与传统的单机服务有很大的差别

    1.1K30

    国内2大Git代码托管网站

    可以说GitHub的出现完全颠覆了以往大家对代码托管网站的认识。GitHub不但是一个代码托管网站,更是一个程序员的SNS社区。GitHub真正迷人的是它的创新能力与Geek精神,这些都是无法模仿的。...在GitHub出现后,国内也出现了大量的代码托管网站,国内外有的代码托管网站也都开始引入GitHub的某些元素。...京东代码托管平台 作为京东电商云生态的重要一环,京东云汇中的代码托管平台(https://code.jd.com/) 2013年7月份起全面对外开放,用户只要拥有京东账号即可使用的代码托管服务。...此外,为了支持国内程序员开源社区建设,目前平台对每个项目均提供免费的1G存储空间,并设置了“代码一键迁移”功能,用户可以方便的从其他GIT代码托管平台转移其项目到京东代码库。...京东云汇中开放的免费代码托管平台实现了基于Git的开发任务分包管理、代码在线和离线编辑、编码助手、代码版本管理等全程的代码管理服务 CSDN代码托管平台 2013年6月28日推出代码托管与社交编程平台“

    3.7K80

    自托管代码平台Gitlab | 搭建使用教程

    2.3CPU CPU 需求取决于用户数量和预期的工作负载,确切需求更多地取决于您的工作负载。您的工作负载受多重因素影响,不限于您的用户活跃程度、您使用的自动化程度、镜像、制品库大小和变更大小。...以下是针对部分用户数量群体,推荐的最低 CPU 硬件要求。...4 核 是推荐的最小核数,支持多达 500 名用户 8 核支持多达 1000 名用户 2.4内存 内存需求取决于用户数量和预期的工作负载,确切需求更多地取决于您的工作负载。...您的工作负载受多重因素影响,不限于您的用户活跃程度、您使用的自动化程度、镜像、制品库大小和变更大小。 以下是针对部分用户数量群体,推荐的最低内存硬件要求。...sudo mkdir -p /data/gitlab #/data/gitlab可以修改成合适的目录 cd /data/gitlab 3.2运行容器 参考文章:5分钟搭建自己的代码托管平台gitlab

    51210
    领券