写点什么

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:003133
用户头像

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

关注

评论

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

ApacheCon 首次亚洲大会火热来袭,SphereEx 邀您共赴年度盛会

SphereEx

作业二朋友圈高性能架构设计

王小森

架构实战营第一期--模块二作业

clay

架构实战营

架构实战营 模块二 作业

三叔叔_拖延症晚期

架构实战营

到底什么时候要分库分表?

卢卡多多

分库分表 7月日更

架构模块2

慕溶枫

#架构实战营

架构训练营-模块二

小卷儿

微信朋友圈的高性能复杂度

伏波

架构实战营

设计消息队列存储消息数据的 MySQL 表格——架构实战营作业八

开拓纪

架构师实战营 作业八

领域驱动设计中的分层模型

escray

学习 极客时间 7月日更 如何落地业务建模

一篇并不起眼的数据仓库面试题

王知无

推荐一个软件--IObit Uninstaller

IT蜗壳-Tango

7月日更

Spark SQL和DataSet(六)

Databri_AI

sql spark RDD

标签体系下的用户画像建设小指南

王知无

Java单例模式一文通

喵叔

7月日更

架构实战营模块二作业

子豪sirius

架构实战营

模块二-微信朋友圈高性能复杂度分析

kk

架构实战营

争议不断的动力电池暗战,究竟改变了什么?

脑极体

趣说开源|为什么要参与到开源社区中?

SphereEx

模块二作业

晨晨

模块二作业

seawolflin

架构实战营

网络攻防学习笔记 Day78

穿过生命散发芬芳

网络攻防 7月日更

架构实战营作业七——王者荣耀商城异地多活架构设计

开拓纪

架构实战营 模块七

架构实战营 - 模块二

绝影

架构训练营

架构实战营模块二 作业

酷飞不会飞

作业2-微信朋友圈高性能分析

Nullrable

架构实战课

架构训练营模块二作业

河马先生

架构实战营

微信朋友圈复杂度分析

buoge

当我们在学习Hive的时候在学习什么?「硬刚Hive续集」

王知无

实时数据湖:Flink CDC流式写入Hudi

王知无

架构实战营作业 M02

Shawn Liu

架构实战营

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