Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >.NET本机和Ngen.exe之间有什么区别?

.NET本机和Ngen.exe之间有什么区别?
EN

Stack Overflow用户
提问于 2014-04-07 00:23:09
回答 2查看 6.8K关注 0票数 31

标题说明了一切。我希望有人能向我解释一下.NET本机带给我的东西,我们还没有和Ngen.exe在一起。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-04-07 00:43:03

据我所知,Ngen仍然依赖于框架,而根据faq,.NET本机在开始生产时并不依赖这个框架。

这仅仅是性能方面的问题,还是也允许构建本机编译到Win32 32/64且不需要在目标计算机上安装C#框架的.NET代码(例如)? 这是正确的:.NET本机不仅与性能有关,而且还与生产力和一致的设备体验有关。.NET本机允许您使用托管语言编写代码,并一如既往地上载MSIL包。然而,应用程序将作为完全独立的本地编译代码(当本机进入生产时)部署到终端用户设备上,并且不会依赖目标设备/机器上的.NET框架,如您所知,.NET应用程序的范围很广。因此,我们也对完整的.NET框架进行了大量投资(例如,我们刚刚发布了一个RyuJIT的CTP )。

微软.NET本机常见问题

票数 20
EN

Stack Overflow用户

发布于 2014-05-12 15:54:36

您可以将.NET本机视为桌面CLR使用的NGen技术的一种演变。.NET本地人和NGEN有几种主要的不同之处-

  • 运行时依赖项- NGEN使用完整的桌面CLR,.NET本机使用重构运行时(mrt100_app.dll),该运行时是应用程序本地的。已经对.NET本机运行时进行了重构,以便将大多数功能从应用程序中移出并进入代码生成工具链。这使得它更小,更多的游戏报酬,(希望)在运行时更易于调试。.NET本机应用程序也是自包含的,这对于应用程序来说是一个有用的属性。
  • 本机图像依赖项--一个NGEN映像紧密绑定到它所运行的CLR和其依赖程序集的NGEN映像。例如,当对mscorlib.dll进行错误修复时,几乎所有的NGEN映像都需要重新生成。
  • 编译位置- .NET本机的目标是在应用程序存储中生成本机代码。NGEN在终端用户设备上生成本机代码。您当然可以想象,对于某些类型的设备(如电话、平板电脑),您宁愿不浪费终端用户的电池寿命生成代码。存储中的编译还允许.NET本机花费更多的时间进行编译,因此允许它应用NGEN所能提供的更多优化。
  • 代码生成器- NGEN使用JIT编译器生成代码,.NET本机使用VisualC++编译器的后端,这使我们能够应用诸如自动向量化之类的优化,这些优化在JIT中的应用成本太高。
  • 整体程序分析- NGEN一次为单个程序集生成代码,这允许在多个应用程序上下文中使用NGEN映像。.NET本机为整个应用程序包生成代码,这允许它应用更广泛的优化(例如,完全丢弃运行时从未使用过的代码)。这与一个重构的框架结合在一起,它使这些优化能够尽可能地发挥作用。
  • IL回退- NGEN映像包含程序集的本机代码和(以及其他数据结构)。如果在运行时发生了导致CLR需要在NGEN映像中找不到的本机代码的事情,它可以返回到JITing。在.NET本机当前的开发人员预览中,本机映像中只存在本机代码。这意味着如果代码不在映像中,它将永远不会在运行时执行。
票数 30
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22907111

复制
相关文章
如何在 Debian 11 上设置 DHCP 服务器?
DHCP(动态主机配置协议)是一种网络协议,用于自动分配IP地址和其他网络配置参数给客户端设备。在Debian 11上设置DHCP服务器是一项重要的任务,本文将为您提供详细的步骤和指导。
网络技术联盟站
2023/07/14
7300
如何在 Debian 11 上设置 DHCP 服务器?
如何在Debian 8上设置VNC服务器
VNC(虚拟网络计算)是一种使用户能够连接远程计算机的图形桌面并与之交互的系统。它可以通过网络传输屏幕更新,键盘和鼠标事件。
谢鸢
2018/10/22
4.6K0
如何在 Debian 11 上设置 DHCP 服务器?
DHCP(动态主机配置协议)是一种网络协议,用于自动分配IP地址和其他网络配置参数给客户端设备。在Debian 11上设置DHCP服务器是一项重要的任务,本文将为您提供详细的步骤和指导。
网络技术联盟站
2023/07/13
1.5K0
如何在 Debian 11 上设置 DHCP 服务器?
在MacOSX机器上设置JenkinsCI服务器
Jenkins Wiki提供了用于Jenkins安装的选项列表,但没有提及Mac OSX。尽管它提到了Docker,但我只听说过有关Docker的好消息。在本文中,我将坚持使用自制软件。在继续操作之前您需要在Mac上安装和配置JDK。
DevOps云学堂
2020/07/24
2.4K0
如何在Ubuntu 18.04服务器上安装Python 3并设置编程环境
Python是一种灵活的多功能编程语言,可用于许多用例,具有脚本,自动化,数据分析,机器学习和后端开发的优势。1991年首次出版,其名称灵感来自英国喜剧组织Monty Python,开发团队希望使Python成为一种有趣的语言。快速设置,并以相对简单的方式编写并立即反馈错误,Python是初学者和经验丰富的开发人员的绝佳选择。Python 3是该语言的最新版本,被认为是Python的未来。
心语花束
2018/10/10
3.6K0
如何在Ubuntu 18.04上设置Nginx服务器模块
Nginx服务器块允许您在一台机器上运行多个网站。 使用服务器块,您可以指定站点文档根目录(包含网站文件的目录),为每个站点创建单独的安全策略,为每个站点使用不同的SSL证书等等。
星哥玩云
2022/07/13
2K0
如何在Ubuntu 18.04上设置Nginx服务器模块
如何在 Ubuntu 服务器 22.04 上设置静态 IP 地址
强烈建议在 Linux 服务器上使用静态 IP,因为它会在重启后保持不变。静态 IP 对邮件服务器、Web 服务器和文件服务器等服务器起着重要作用。
雾海梦曦
2022/11/24
3.8K0
如何在 Ubuntu 服务器 22.04 上设置静态 IP 地址
如何在 Ubuntu 20.04 上设置 Nginx 服务器配置块
一个服务器配置块是一个 Nginx 指令,它定义了对于一个指定域名的设置,允许你在一个单机服务器上运行多个网站。对于每一个网站,你可以设置网站文件根目录(包含网站文件的目录),创建一个独立的安全策略,使用不同的 SSL 证书等等。
雪梦科技
2020/07/14
7K0
如何在 Ubuntu 20.04 上设置 Nginx 服务器配置块
如何在Ubuntu 14.04上设置Hexxit(Minecraft ModPack)服务器
Hexxit是一个Minecraft modpack,即Minecraft mods的集合。虽然原始游戏的根源在于自由形态的探索和建设,但Hexxit强调冒险和战斗。Hexxit中包含的54种mod包括各种各样的新怪物(包括老大),新的探索结构以及大量稀有和有用的战利品!
不会飞的蝴蝶
2018/10/22
1.4K0
如何在 Ubuntu 18.04 上设置域名解析服务器
域名解析系统(DNS)是互联网架构中的一个中心部分,它提供了一种解析域名到 IP 地址的方式。你可以把 DNS 认为是互联网的电话号码薄。
雪梦科技
2020/05/11
15.6K0
如何在 Ubuntu 18.04 上设置域名解析服务器
如何在 CentOS 8 上设置 Nginx 服务器配置块
一个服务器配置块是一个 Nginx 指令,它定义了对于一个指定域名的设置,允许你在一个单机服务器上运行多个网站。对于每一个网站,你可以设置网站文件根目录(包含网站文件的目录),创建一个独立的安全策略,使用不同的 SSL 证书等等。
雪梦科技
2020/05/11
2.3K0
如何在 CentOS 8 上设置 Nginx 服务器配置块
如何在 Ubuntu 服务器 22.04 上设置静态 IP 地址
强烈建议在 Linux 服务器上使用静态 IP,因为它会在重启后保持不变。静态 IP 对邮件服务器、Web 服务器和文件服务器等服务器起着重要作用。
雾海梦曦
2022/11/12
7.1K0
如何在 Ubuntu 服务器 22.04 上设置静态 IP 地址
如何在一些Ubuntu服务器上设置Serf集群
Serf是一种分散的服务编排和服务发现工具。它具有极高的容错能力和分散性,与其他类似工具一样没有单点故障。Serf可用于触发系统集群中的任何事件以及执行监视任务。它建立在Gossip协议的基础之上,该协议专为分散式通信而设计。为了使节点加入Serf集群,该节点只需要最初知道集群中另一个节点的地址。节点加入后,所有成员资格信息都将在整个群集中传播。Gossip协议使Serf非常容易设置和配置。
温浪
2018/08/03
1.1K0
如何在Ubuntu 14.04上安装VestaCP并设置网站
Vesta控制面板是一个免费的开源网站控制面板,内置网站,电子邮件,数据库和DNS功能。在本教程结束时,我们将在Ubuntu 14.04上安装并运行Vesta,并提供可用的网站和电子邮件帐户。
大瓜皮
2018/10/10
1.9K0
如何在Ubuntu 18.04上使用VSFTP快速设置FTP服务器
如果你想将应用程序迁移到最新版本Ubuntu Linux服务器中,并且需要快速启动并运行FTP服务器。如何操作?这实际上非常简单。这里将使用VSFTP服务器向您展示如何做到这一点。
星哥玩云
2022/07/14
1.9K0
如何在Ubuntu 14.04上安装VestaCP并设置网站
Vesta控制面板是一个免费的开源网站控制面板,内置网站,电子邮件,数据库和DNS功能。在本教程结束时,我们将在Ubuntu 14.04上安装并运行Vesta,并提供可用的网站和电子邮件帐户。
司徒永哥
2018/10/16
1.9K0
侦听器watch
虽然计算属性在大多数情况下更合适,但有时也需要一个自定义的侦听器。 这就是为什么 Vue 通过 watch 选项提供了一个更通用的方法,来响应数据的变化。
名字是乱打的
2021/12/22
6850
侦听器watch
如何在Ubuntu 16.04上设置Nginx服务器块(虚拟主机)
使用Nginx Web服务器时,可以使用服务器块(类似于Apache中的虚拟主机)来封装配置详细信息,并从单个服务器托管多个域。
葡萄
2018/10/19
4.9K0
如何在macOS上安装Ruby并设置本地编程环境
Ruby是一种动态编程语言,可用于编写从简单脚本到游戏和Web应用程序的任何内容。它于1993年首次在日本发布,但在2005年作为服务器端Web开发的语言获得了普及。Ruby旨在为初学者提供易用和有趣的功能,但功能强大,足以创建复杂的系统。对于初学者和经验丰富的开发人员来说,这是一个很好的选择。
葡萄
2018/10/11
3.3K1
如何在 Chrome 中设置HTTP服务器?
首先,定义问题:在 Chrome 浏览器中设置HTTP服务器主要涉及到修改网络设置,使用HTTP服务器可以帮助用户访问网络内容,提高网络速度或者保护隐私。
华科云商小徐
2023/10/25
5440

相似问题

在另一台服务器上设置PHP会话

22

在另一台服务器上设置会话变量

113

在另一台服务器上为我们的网站设置HTTPS/SSL证书

10

在Websocket/RESTful服务器上设置侦听器(AWS Elastic Beanstalk)

12

获取错误“此服务的安全设置要求‘匿名’身份验证.”在一台服务器上,而在另一台服务器上

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文