写点什么

VS2015 Update 2 中如何提升.NET Native 代码

  • 2016-05-02
  • 本文字数:841 字

    阅读完需:约 3 分钟

Microsoft 持续发表 Visual Studio 2015 的新特性与功能。在最新的称为 Update 2 的变更中也不例外,对.NET Native 编译器进行了几项更新。你可能记得,当.NET native 作为编译目标时,Windows 应用程序(这里指针对 Windows 10 的 UWP 应用程序)直接被编译为本地代码,而不产生默认的中间语言(IL)。这样做有几个优点,最主要的是开发者可以继续用 C#或是 Visual Basic 写应用程序,而与传统的基于 IL 的应用程序相比,用户可得到更快的执行速度,更短的启动时间并占有更少的内存。

可以预见,编译.NET 为本地代码有许多缺点。Microsoft准备了一个很长的列表,其中列出了他们认为的.NET Native 与常规的 Windows 应用程序之间的“行为变化”。本文不会详细说明这些变化,但值得注意的是其中涉及泛型反射的变化。正如.NET 团队的 Stacey Haffner 和 Matthew Whilden 在一篇博文中写道的,“当编译本地代码时,动态性问题将会成为一个挑战,因为所有的代码都必须在编译时识别和编译。”

由于使用静态分析来确定所有泛型实例非常复杂,团队引入了 Universal Shared Generics (UGS)。现在当可以用特定类型的代码表示时,会产生优化后的代码,而当不可表示时则会使用 UGS。

另外一个有利于所有.NET Native 开发者的变化是.NET Native 项目编译器后端的改变。最新发布的 1.3.1 版本的.NET Native 工具使用与 Microsoft C++ 编译器相同的程序内联引擎。随着时间的推移,.NET 团队计划在.NET Native 项目中使用更多 C++ 编译器提供的优化方案。
要使用这些新的编译器功能,你需要下载最新的 UWP App Development Tools(1.3.1 版本 for Windows 10 SDK 10.0.10586),并从 NuGet 下载最新的.NET Core UWP 包。它们需要安装在 Update 2 可用的 Visual Studio 2015 之上。

查看英文原文 How VS2015 Update 2 Improves .NET Native Code


感谢夏雪对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2016-05-02 19:003331
用户头像

发布了 218 篇内容, 共 78.8 次阅读, 收获喜欢 76 次。

关注

评论

发布
暂无评论
发现更多内容

《流浪地球2》的现实倒影(一):从量子计算机到MOSS

脑极体

量子计算机 小苔藓 流浪地球 MOSS

数据结构-Hash常见操作实践

杨充

Spring Boot + WebSocket 实时监控异常

程序员大彬

Java springboot

高效管理,让工作事半功倍

石云升

极客时间 2月月更 技术领导力实战笔记

Flomesh Ingress 使用实践(二)TLS 进阶

Flomesh

HTTP ingress Pipy

什么是渲染农场,渲染农场一般怎么收费?

Renderbus瑞云渲染农场

云渲染农场 渲染农场

安全可信| 首批+先进!天翼全栈混合云一举斩获三项可信云评估

天翼云开发者社区

周鸿祎瞄准中小微客户提供免费SaaS,思路:50万企业×2万年费=100亿补贴

B Impact

数字先锋| 枣庄政务云全新升级,居民办事体验upup!

天翼云开发者社区

利用 Addax 异构迁移数据到 Databend

Databend

基于SLO告警(Part 2):为什么使用MWMB方法

Grafana 爱好者

可观测性 Grafana Prometheus SRE SLO

面试官:什么是双亲委派模型?

王磊

java面试

时序电路建模基础

timerring

FPGA

专访三维空间雷成老师 | 原来水墨画风格的3D建筑动画可以如此惊艳……

Renderbus瑞云渲染农场

瑞云渲染 3D建筑动画 三维空间

如何理解DevOps?

老张

DevOps 软件工程

Java高手速成 | JSP MVC模式项目案例

TiAmo

mvc java; jsp

【FAQ】申请运动健康服务验证环节常见问题及解答

HarmonyOS SDK

HMS Core

天翼云以10.2%份额位列中国公有云IaaS+PaaS市场第三

天翼云开发者社区

一体化移动办公平台,让政企工作更轻松、更便捷

BeeWorks

开年直播 | 博睿数据创始人兼CTO对话InfoQ,聊聊2023年重要战略技术趋势:可观测性

博睿数据

可观测性 博睿数据 媒体声音

疫情大环境下科技互联网公司开源节流降本增效

laofo

研发效能 降本增效 开源节流

用 NFTScan 的角度解析 Yuga labs NFT 项目系列

NFT Research

NFT BAYC

架构杂谈——互联网系统架构演进

小小怪下士

Java 程序员 后端 架构设计

一文读懂SCADA系统的组件功能及应用

2D3D前端可视化开发

组态软件 工业组态软件 web组态软件 SCADA

WorkPlus即时通讯软件,专注于企业信息安全可靠的企业IM

BeeWorks

跨境SaaS企业“会议营销"实战:立足商机注定平庸,300分客户转不转“MQL"?

B Impact

AI时代的信息技术部怎么改革?

FN0

小程序 超级app

应用可靠性与性能不给力?HarmonyOS HiViewDFX了解一下

HarmonyOS开发者

HarmonyOS

疫情时代的宠儿:抗生素行业,今后何去何从

前嗅大数据

大数据 数据分析 网络爬虫 抗生素

共铸国云智领未来| 如心未来社区的“幸福密码”

天翼云开发者社区

VS2015 Update 2中如何提升.NET Native 代码_.NET_Jeff Martin_InfoQ精选文章