NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

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

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

关注

评论

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

虚言妙诀终虚见,面试躬行是致知,Python技术面试策略与技巧实战记录

刘悦的技术博客

Python 面试

联发科推出天玑1200,新一年的头道“5G甜点”究竟滋味如何?

脑极体

区块链高水平专业人才稀缺成发展掣肘

CECBC

区块链人才

中金数据集团与腾讯云合力拓展信息安全、区块链业务领域

CECBC

区块链产业

双仓合约量化交易系统开发搭建

薇電13242772558

区块链 数字货币

DBA 的效率加速器——CloudQuery v1.3.2 上线!

BinTools图尔兹

数据库 运维 开发日志 dba 数据库管理工具

《认识产品经理》课后总结

DB

产品经理训练营

Soul网关源码阅读(十)自定义简单插件编写

Java 源码阅读 网关

数字货币交易所APP开发|数字货币交易所软件系统开发

系统开发

1121212

熙羽1

35+的测试人都去哪儿了?所谓“青春饭”真的只是在贩卖焦虑吗?

程序员阿沐

编程 程序员 软件测试 教程 测试工程师

认识产品经理(第一章上)

让我思考一会儿

讨论:Service层的接口是不是多此一举?

xcbeyond

Java 接口管理 28天写作

亲历者说 | 完整记录一年多考拉海购的云原生之路

阿里巴巴云原生

阿里云 容器 微服务 云原生 dubbo

Seata RPC 模块的重构之路

阿里巴巴云原生

阿里云 开源 云原生 RPC seata

云原生的理解

JiangX

容器 云原生 数字化转型 数字化 28天写作

2020出行之变(一):自动驾驶的“跃渊”时刻

脑极体

python+requests接口测试基础

测试人生路

软件测试

TARS 染色日志|收集记录特定日志

TARS基金会

微服务 运维 日志 日志分析 TARS

Spring Boot 中集成Redis

武哥聊编程

Java redis springboot SpringBoot 2 28天写作

HTML(五)——建立表格

程序员的时光

程序员 大前端 七日更 28天写作

大数据知识专栏 - MapReduce 的 Reduce端Join

小马哥

大数据 hadoop mapreduce 七日更

干货|更通用的P2P网络协议栈——Libp2p

QTech

IPFS Libp2p

区块链交易所软件开发|区块链交易所APP系统开发

系统开发

关于Dapper实现读写分离的个人思考

yi念之间

华为云登顶HotpotQA多跳知识推理问答评测

华为云开发者联盟

深度学习 华为 华为云

Redis 学习笔记 09:数据库

架构精进之路

redis 七日更 28天写作

阿里用5大核心技术+10大高级框架+200个经典案例全面解答了并发网络编程

996小迁

编程 架构 面试 笔记 亿级流量

数字人民币带来更好支付体验 没有网络时也能使用

CECBC

数字人民币

Nginx实现在局域网内真正的ip_hash负载均衡​

会飞的猪

听了微信创始人张小龙的演讲,更加坚定Filecoin的光辉未来

时空云

分布式存储 IPFS Filecoin

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