C++的性能C#的产能?! - .Net Native 系列向导
之前一文《c++的性能, c#的产能?!鱼和熊掌可以兼得,.NET NATIVE初窥》 获得很多朋友支持和鼓励,也更让我坚定做这项技术的推广者,希望能让更多的朋友了解这项技术,于是先从官方信息的翻译开始做起。
此系列系小九的学堂原创翻译,翻译自微软官方开发向导,一共分为六个主题。本文是总览及向导。之后会将目录分块持续进行翻译,并会加上链接。
[小九的学堂,致力于以平凡的语言描述不平凡的技术。如要转载,请注明来源:小九的学堂。cnblogs.com/xfuture]
目录
1. .NET Native安装和配置(.NET Native Setup and Configuration)
6. 将Windows应用商店应用迁移到.Net Native (Migrating Your Windows Store App to .NET Native)
7. .NET Native一般问题解答 Q&A (.NET Native General Troubleshooting)
原文:Compiling Apps with .NET Native
使用.Net Native编译应用
小贴士 |
|---|
|
这个主题依赖于预发行的.net native开发者预览版。下载地址: Microsoft Connect website. 友情提示需要注册. |
.net native是构建和部署windows store apps(windows应用商店应用)时可使用的预编译技术(注:据build2014大会信息,将来会逐渐支持桌面应用)。它可以把在.net framework下写出的托管代码编译成机器码。
通常情况下, 在.NET环境下开发的应用程序会被编译成中间语言(IL)。在运行时,即时编译(JIT)会将中间代码编译成机器码。与此不同的是,.NET Native则直接将windows应用商店程序编译为机器码。
对于开发者意味着:
你的应用将拥有机器码直接运行的卓越性能。
你可以继续使用C#来进行开发。
你可以继续获得.NET Framework框架带来的所有优势:强大的类库,自动的内存管理机制和垃圾回收,异常处理机制,等等。
对于使用者意味着:
运行更快更流畅
持续保持更快的启动(注:启动时间减少60%)
更低的部署和更新消耗
内存优化(注:内存消耗减少20%)
.NET Native 涉及了多种编译成机器码的方法。它转换了.NET Framework对于应用的构建和执行机制。尤其是:
在预编译的阶段,将所需要的.NET Framework的部分静态链接到应用程序,这使用应用程序可以在应用程序自身包含的.NET Framework库下, 编译器可以进行全面分析并提供更高性能的运行状态。这种带来的好处是,即使.NET Framework更新了,应用依然可以保持更快的速度来启动。
.NET Native 通过静态的预编译优化了应用的运行时,因此可以提供更卓越的性能。与此同时,它保留了核心反射功能,提供给开发者优秀的产能。
.NET Native 使用了和C++编译器相同的后端, 对静态编译的场景进行了优化。
.NET Native 能够带给在.NET Framework和CLR环境开发的人员C++的性能优势,因为它使用了和C++底层相同或者相似的工具,具体如下表所示:
|
.NET Native |
C++ |
|
|---|---|---|
|
库 |
The .NET Framework + Windows Runtime |
Win32 + Windows Runtime |
|
编译器 |
UTC 优化编译器(UTC optimizing compiler) |
UTC 优化编译器(UTC optimizing compiler) |
|
部署 |
随时可以运行的二进制机器码 |
随时可以运行的二进制机器码(汇编) |
|
运行 |
MRT.dll (Minimal CLR Runtime) |
CRT.dll (C Runtime) |
Windows 8.1 系统下Windows应用商店应用发行中,可以将在app包里(.appx files)的.NET Native编译成的机器码源文件上传至Windows应用商店。
C++的性能C#的产能?! - .Net Native 系列向导的更多相关文章
- C++的性能C#的产能?! - .Net Native 系列五:.Net Native与反射
此系列系小九的学堂原创翻译,翻译自微软官方开发向导,一共分为六个主题.本文是第五个主题:.Net Native与反射. 向导文链接:<C++的性能C#的产能?! - .Net Native 系列 ...
- C++的性能C#的产能?! - .Net Native 系列四:性能测试方法(PerfView)
之前一文<c++的性能, c#的产能?!鱼和熊掌可以兼得,.NET NATIVE初窥> 获得很多朋友支持和鼓励,也更让我坚定做这项技术的推广者,希望能让更多的朋友了解这项技术,于是先从官方 ...
- C++的性能C#的产能?! - .Net Native 系列《三》:.NET Native部署测试方案及样例
之前一文<c++的性能, c#的产能?!鱼和熊掌可以兼得,.NET NATIVE初窥> 获得很多朋友支持和鼓励,也更让我坚定做这项技术的推广者,希望能让更多的朋友了解这项技术,于是先从官方 ...
- C++的性能C#的产能?! - .Net Native 系列《二》:.NET Native开发流程详解
之前一文<c++的性能, c#的产能?!鱼和熊掌可以兼得,.NET NATIVE初窥> 获得很多朋友支持和鼓励,也更让我坚定做这项技术的推广者,希望能让更多的朋友了解这项技术,于是先从官方 ...
- C++的性能C#的产能?! - .Net Native 系列《一》:.NET Native安装和配置
之前一文<c++的性能, c#的产能?!鱼和熊掌可以兼得,.NET NATIVE初窥> 获得很多朋友支持和鼓励,也更让我坚定做这项技术的推广者,希望能让更多的朋友了解这项技术,于是先从官方 ...
- c++的性能, c#的产能?!鱼和熊掌可以兼得,.NET NATIVE初窥
对于微软开发者来说,每次BUILD大会都是值得期待的.这次也是惊喜满满,除了大众瞩目的WP8.1的发布还有一项会令开发者兴奋的技术出现:.NET NATIVE.下面就来详细了解一下其为何物. [小九的 ...
- 不可或缺 Windows Native 系列文章索引
[源码下载] 不可或缺 Windows Native 系列文章索引 作者:webabcd 1.不可或缺 Windows Native (1) - C 语言: hello c 介绍不可或缺 Window ...
- 【REACT NATIVE 系列教程之十二】REACT NATIVE(JS/ES)与IOS(OBJECT-C)交互通信
http://blog.csdn.net/xiaominghimi/article/details/51586492 一用到跨平台的引擎必然要有引擎与各平台原生进行交互通信的需要.那么Himi先讲解R ...
- React Native系列文章
React Native版本升级的正确姿势 WebView JS与RN进行通讯 用API网关把API管起来 React-Native 给客户端来个「同音词模糊搜索」 30天React Native从零 ...
随机推荐
- 《Android NFC 开发实战详解 》简介+源码+样章+勘误ING
<Android NFC 开发实战详解>简介+源码+样章+勘误ING SkySeraph Mar. 14th 2014 Email:skyseraph00@163.com 更多精彩请直接 ...
- UWP学习记录5-设计和UI之控件和模式2
UWP学习记录5-设计和UI之控件和模式2 1.应用栏和命令栏 CommandBar 控件是一款通用.灵活.轻型的控件,可显示复杂内容(如图像或文本块)以及简单的命令(如 AppBarButton.A ...
- .NET开发人员必看:提高ASP.NET Web应用性能的24种方法和技巧
那性能问题到底该如何解决?以下是应用系统发布前,作为 .NET 开发人员需要检查的点. 1.debug=「false」 当创建 ASP.NET Web应用程序,默认设置为「true」.开发过程中,设置 ...
- 禁用ViewPager边界滑动效果(转)
反射设置方法 private EdgeEffectCompat leftEdge; private EdgeEffectCompat rightEdge; public void DisableLRS ...
- JS冒泡排序(div)
更生动的排序动画. 通过改变div的高度来实现排序,通过闭包来实现for循环的睡眠时间. <!doctype html> <html lang="en"> ...
- 控制Storyboard播放zz
<Grid Width="300" Height="460"> <Grid.RowDefinitions> <RowDefinit ...
- MySQL学习笔记02_数据库和表的基本操作
02_1 操作数据库 (1)创建数据库 CREATE DATABASE [IF NOT EXISTS] db_name [create_specification[, create_specifica ...
- iPhone/iPad/Android UI尺寸规范 UI尺寸规范,UI图标尺寸,UI界面尺寸,iPhone6尺寸,iPhone6 Plus尺寸,安卓尺寸,iOS尺寸
iPhone/iPad/Android UI尺寸规范 UI尺寸规范,UI图标尺寸,UI界面尺寸,iPhone6尺寸,iPhone6 Plus尺寸,安卓尺寸,iOS尺寸 iPhone界面尺寸 设备 分辨 ...
- 队列的JS实现
队列和栈相似,都是对插入和删除操作的部位做了限制特殊的线性表.在队列中,只能从一头删除节点,这一头叫做队首:而另一端只能做插入操作,这一头叫做队尾.很容易理解,队列是一个"先进先出" ...
- C++:为什么说 goto 没有用
要了解一个功能有没有用,首先应该分析它能实现的所有功能. goto 可以实现的功能只有两种:一,向前面跳:二,向后面跳.这两种情况对应三种功能:一,重复执行也就是循环:二,跳过一段代码也就是条件判断: ...
小贴士