写点什么

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

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

关注

评论

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

Stratifyd整理:Forrester客户体验评估报告

小程序在APP上运行,安全且高效

Speedoooo

容器 ios开发 APP开发 Andriod开发

前端中常用的媒体查询详解,sass基础用法概览

你好bk

CSS html css3 大前端 SASS

linux之同时监控多个日志文件变化

入门小站

Linux

在线中英文符号转换工具

入门小站

工具

[ CloudWeGo 微服务实践 - 01 ] 开篇

baiyutang

10月月更

架构学习日常记录

张靖

#架构实战营

要想下班早,微服务架构少不了

华为云开发者联盟

数据分析 数据 追溯

江西交通学院98级校友登记小程序设计

CC同学

校友小程序

【架构实战营】模块二

衣谷

架构实战营

论文解读丨表格识别模型TableMaster

华为云开发者联盟

文字识别 表格识别 TableMaster 文字检测 表格结构序列

看动画学算法之:队列queue

程序那些事

Java 队列 看动画学算法 程序那些事

云智慧开源数据可视化编排平台—FlyFish

云智慧AIOps社区

开源 大前端 低代码 数据可视化 JavaScrip

架构实战营毕业总结

Abner S.

#架构实战营

跨越行业绊脚石,阿里云函数计算发布 7 大技术突破

阿里巴巴云原生

阿里云 云原生 函数计算 重磅升级

看半小时漫画,通晓计算机基础

博文视点Broadview

架构训练营第一章作业

颜本军

架构设计

小程序与 H5、原生应用的对比

Speedoooo

容器 信息安全 ios开发 APP开发 Andriod开发

观察者网专访明道云CEO任向晖

明道云

LiveVideoStackCon2021 北京站专访:从上云到创新,视频云的新技术、新场景

阿里云视频云

阿里云 音视频 视频编码 视频编解码 视频云

中国互联网特有的产物--超级APP

Speedoooo

容器 ios开发 APP开发 APP安全 Andriod开发

模块二作业

bob

「架构实战营」

OpenYurt 深度解读|开启边缘设备的云原生管理能力

阿里巴巴云原生

阿里云 云原生 边缘计算 openyurt 管理能力

海量数据分析快准稳!GaussDB(for MySQL) HTAP只读分析特性详解

华为云开发者联盟

MySQL 数据分析 GaussDB(for MySQL) HTAP 只读分析

【架构实战营】模块一作业

liu🍊

从没有人将代理模式分析得如此透彻

Tom弹架构

Java 架构 设计模式

ONES X 深圳农村商业银行 | 数字化项目管理实践

万事ONES

研发管理 SaaS 金融 ONES 数字化进程

什么是漏洞扫描?

华为云开发者联盟

工具 安全 漏洞 漏洞扫描 扫描

架构实战营学习记录

王斌

Vue进阶(幺伍贰):el-table-column :key 应用

No Silver Bullet

Vue 10月月更

聊聊Kubernetes Pod or Namespace卡在 Terminating 状态的场景

大卡尔

Kubernetes

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