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从零 ...
随机推荐
- myeclipse一直卡在loading workbench解决方法
删除工作空间下.metadata中的org.eclipse.ui.workbench org.eclipse.ui.workbench.texteditor
- JSON对象格式美化
JSON.stringify(obh, null, "\t"); 这段代码就可以对某个js对象美化输出
- Android 利用ImageView显示图片
Author: Maddock Date: 2015-07-21 因为做算法demo的需要,开发一点安卓的程序. 需求:获取UI中图像中某点的坐标. 参考:http://longshuai2007.b ...
- GIT版本管理工具
原文:http://blog.csdn.net/ithomer/article/details/7527877 Git 是一个分布式版本控制工具,它的作者 Linus Torvalds 是这样给我们介 ...
- 关于handler 和 looper 的问题
重新去学习回顾looper和handler ,还是需要重新认识这个经常使用的机制. 我首先是看任玉刚老师的书<android的开发艺术探索>的第十章. 里面一句话开始说出了我们大概的理解— ...
- React,React Native中的es5和es6写法对照
es6用在React中的写法总结: 在es6还没有完全支持到浏览器的阶段里,已经有很多技术人员开始用es6的写法来超前编程了,因为有转义es6语法的工具帮助下,大家才可大量使用.解析看看es6写法用在 ...
- Manthan, Codefest 16(B--A Trivial Problem)
B. A Trivial Problem time limit per test 2 seconds memory limit per test 256 megabytes input standar ...
- ViewPager取消左右滑动切换功能
ViewPager取消左右滑动切换功能 最近做项目要求某种情况下ViewPager不能滑动,那么我们只需要重写这个方法就可以禁止ViewPager滑动 IndexViewPager.java: imp ...
- mssql查询列名中包含特定字段的列
CREATE TABLE itemdata_LANG ( itemno ) NOT NULL, itemname ), -- 产品名称 othername ), indications ), -- 适 ...
- JAVA回调机制和观察者模式实例分享
回调函数在JAVA中使用频繁,比如Swing可视化编码中的监听事件等等,一般回调函数都是,通过某一个方法的执行,自动调用回调对象的回调方法,比如,有一个接口,里面有一个方法onNotify(),这个方 ...