写点什么

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

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

关注

评论

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

技术笔记(语音识别-语音噪声分类)

攻城先森

噪声 5月日更 技术笔记

自主品牌实力认可!浪潮云洲亮相2021年中国品牌日

云计算

客制化:定制专属于你的产品和服务

石云升

产品 用户 职场经验 5月日更

「技术人生」专题第1篇:什么是技术一号位?

阿里巴巴中间件

这个云原生开发的痛点你遇到了吗?

阿里巴巴中间件

iOS 开发:第三方开源库(Swift版)

迪安

移动开发 Framework iOS Developer Open Source

为什么人类学家比经济学家对比特币更感兴趣

CECBC

⚓【Java知识晚餐】精心准备的JVM分析工具⚓

码界西柚

Java JVM 5月日更 JVM分析工具

网络攻防学习笔记 Day11

穿过生命散发芬芳

5月日更 网络攻防

​ 备份测试:备份为什么如此重要

GitLab Webhooks 使用

夏兮。

gitlab jenkins CI/CD WEBHOOKS

由高频护网设备漏洞引发的供应链浅思

Thrash

安全

跟着华为大佬学习—Java亿级高并发,第一天

Java架构师迁哥

MySQL 到 ClickHouse 的高速公路

青云技术社区

MySQL 数据库 Clickhouse

你认识镜子里的那个自己吗?

小天同学

原则 认知 5月日更

零基础学习NLP-DAY2

Qien Z.

nlp 5月日更

SaaS的前世、今生与未来 [上篇]

LigaAI

SaaS

吐槽对象

顿晓

对象 5月日更

浅析以太坊网络状态平台架构及WebSocket

devpoint

区块链 以太坊 websocket

70%读写性能提升!基于UCloud对象存储US3的用户态文件系统设计

UCloud技术

对象存储

新场景+新模式,西安雁塔区打造数字人民币示范区

CECBC

传统BI如何转大数据数仓

数据社

大数据 BI 5月日更

【图片旋转】十五分钟挑战鸿蒙Codelab组件

liuzhen007

鸿蒙 5月日更

Spring Cloud Alibaba 生态学习

风翱

spring cloud alibaba 5月日更

必看:Kubernetes 开发环境对比

百度开发者中心

Kubernetes #技术课程#

微软为什么要对jdk下手?阿里对JDK的理解又是什么样的?

Java架构师迁哥

快速搭建接口自动化测试框架

夏兮。

Java JUnit 接口测试 rest-assured

防治肥胖,AI转向

脑极体

全新 EMQ X Cloud:升配、降费、增效,助力企业智能化升级

DT极客

​ 如何保护IP并预防IP泄露

姚翔:递归零知识证明,如何打造简洁的区块链?

CECBC

区块链

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