写点什么

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

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

关注

评论

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

SpringMVC 基础

Andy

Java | 继承

陌上

Java 编程 10月月更

投资成本低且无需专人维护!华为云会议让沟通更高效

秃头也爱科技

华为云桌面——云端上“最卷的云”

秃头也爱科技

深入浅出Python——Python高级语法之异常、模块、包

何极光

Python 异常 模块 10月月更

安全架构师的运营一二事

I

运营 安全架构 企业安全 安全运营

Java | 面向对象(二)

陌上

编程 Java、 10月月更

深入浅出Python——Python高级语法之文件操作

何极光

Python 文件操作 10月月更

MyBatis程序基础实现

Andy

MyBatis之Annotation

Andy

微服务架构

阿泽🧸

微服务 10月月更

强烈推荐!商业洞察就用这个工具

产品海豚湾

产品经理 产品设计 产品运营 商业化 10月月更

企业业务沟通新选择,华为云会议支持全场景智能协作

秃头也爱科技

深耕稳定安全会议服务,华为云会议具备会议全球接入能力

秃头也爱科技

BoardMix:免费在线PPT制作工具,堪称办公神器!

彭宏豪95

职场 工具 PPT 在线白板

EMQ助力构建工业生产数字孪生基础架构|智慧工厂系列专题03

EMQ映云科技

物联网 IoT 工业互联网 数字孪生 10月月更

SpringMVC之拦截器

Andy

MyBatis初步理解

Andy

MySQL向表中添加列

okokabcd

MySQL

MyBatis之缓存机制和动态SQL

Andy

深入浅出Python——Python高级语法之面向对象

何极光

Python 面向对象 10月月更

MyBatis之识别器

Andy

MyBatis之关系映射(上)

Andy

MyBatis之关系映射(下)

Andy

Spring整合MyBatis

Andy

SpringMVC之文件上传

Andy

MyBatis面试题(部分)

Andy

SQL的基本介绍

芯动大师

Python 数据库SQL 10月月更

Java | 数组工具类Arrays、数学工具类Math

陌上

编程 Java、 10月月更

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