之前一文《c++的性能, c#的产能?!鱼和熊掌可以兼得,.NET NATIVE初窥》 获得很多朋友支持和鼓励,也更让我坚定做这项技术的推广者,希望能让更多的朋友了解这项技术,于是先从官方信息的翻译开始做起。
此系列系小九的学堂原创翻译,翻译自微软官方开发向导,一共分为六个主题。本文是总览及向导。之后会将目录分块持续进行翻译,并会加上链接。
[小九的学堂,致力于以平凡的语言描述不平凡的技术。如要转载,请注明来源:小九的学堂。cnblogs.com/xfuture]
目录模块:(待翻译)
1. .NET Native安装和配置(.NET Native Setup and Configuration)
2. .NET Native 编译入门:开发流程 (Getting Started with .NET Native Code Compilation: The Developer Experience Walkthrough)
3. 反射技术和.Net Native (Reflection and .NET Native)
4. 序列化和元数据 (Serialization and Metadata)
5. 将Windows应用商店应用迁移到.Net Native (Migrating Your Windows Store App to .NET Native)
6. .NET Native一般问题解答 Q&A (.NET Native General Troubleshooting)
原文:Compiling Apps with .NET Native
.NET Framework版本 4.5 小贴士
这个主题依赖于预发行的.net native开发者预览版。下载地址: Microsoft Connect website. 友情提示需要注册.
.net native是构建和部署windows store apps(windows应用商店应用)时可使用的预编译技术(注:据build2014大会信息,将来会逐渐支持桌面应用)。它可以把在.net framework下写出的托管代码编译成机器码。
通常情况下, 在.NET环境下开发的应用程序会被编译成中间语言(IL)。在运行时,即时编译(JIT)会将中间代码编译成机器码。与此不同的是,.NET Native则直接将windows应用商店程序编译为机器码。
对于开发者意味着:
对于使用者意味着:
运行更快更流畅
持续保持更快的启动(注:启动时间减少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应用商店。
此篇为引导篇,之后会有目录分篇并会更新链接。 希望大家支持和多多评论,你们的支持是我继续做下去的动力!