微软通过.NET Native为Windows Store应用提速
.NET Native是微软的一次尝试,旨在降低Windows Store应用的启动时间和内存占用。
自从去年11月份,有人发现Windows Store应用的启动速度有了大幅提高后,对该项目的猜测就已经开始了。在微软内部,.NET Native叫做“项目N”,它使用微软C++基础设施,将托管代码预编译为原生代码,从而大幅提升.NET应用的性能。这项技术与NGen(Native Image Generator)或为Store应用进行动态编译是不同的。
.NET Native工具链最初生成MSIL,然后由C++优化器处理并生成MDIL(依赖于机器的中间语言),.NET Native团队的项目经理Mani Ramaswamy这样说道。他在Channel 9的访谈中提供了很多技术细节。在该访谈中,开发主管Shawn Farkas介绍,原生应用会静态地链接到只有几百KB大小的Mrt100.dll。Mrt100.dll代表一个最小化的CLR,为静态编译进行了重构和优化。因此,应用程序启动时将运行于这个最小化的CLR之上,不会加载整个.NET运行时,不会涉及任何JIT编译。
应用程序仍然可以使用dynamic来访问在运行时才能决定其类型的对象。Ramaswamy说,这是在代码优化阶段,保留所有可能在运行时访问的类型时实现的。此外,仍然还可以使用标准的后台垃圾回收。
这些优化将应用的启动时间缩短到原来的60%。.NET Native目前为预览版,并且面向的是Windows Store应用,但.NET Native团队希望将范围扩大到普通的.NET桌面应用。
对于.NET开发者来说,没有什么改变。在应用程序级别没有引入抽象机,整个开发调试的体验也保持一致。得到改变的是构建,需要为特殊的硬件平台生成特殊的构建版本(目前已经支持ARM和x86-64bit,x86-32bit也即将支持)。优化后,构建时间可能要比原来多1-2分钟。
目前并不是一切都十分顺利。MSDN有一节专门介绍用.NET Native编译应用程序,其中一个页面介绍将应用迁移到.NET Native。两者在以下方面存在一些差别:运行时、处理动态编程和反射、大量不支持的场景和API以及Visual Studio。
要想使用原生代码,必须安装Visual Studio 2013 Update 2 RC和.NET Native SDK。
微软通过.NET Native为Windows Store应用提速的更多相关文章
- Win10版《芒果TV》获评2016年度Windows Store最佳官方/休闲娱乐应用(LiveSino和微软信仰中心联合评选)
微软信仰中心于2016年12月9日联合了 LiveSino 进行了最佳 Windows Store 应用特辑的投票评选,通过为期20天的海量用户投票,Win10版<芒果TV>荣获最佳官方应 ...
- 微软宣布.NET Native预览版 C#可编译为本地机器码【转】
英文原文:Announcing .NET Native Preview 微软在 MSDN 博客上宣布了 .NET Native 的开发者预览版..NET Native 可以将 C# 代码编译成本地机器 ...
- 在桌面程序上和Metro/Modern/Windows store app的交互(相互打开,配置读取)
这个标题真是取得我都觉得蛋疼..微软改名狂魔搞得我都不知道要叫哪个好.. 这边记录一下自己的桌面程序跟windows store app交互的过程. 由于某些原因,微软的商店应用的安全沙箱导致很多事情 ...
- Windows Store Javascript项目使用高德地图、谷歌地图、百度地图API
原文 Windows Store Javascript项目使用高德地图.谷歌地图.百度地图API 在Win8 Store 项目中可以使用的地图主要有微软的Bing Map,目前高德地图sdk也支持Wi ...
- Windows Store 应用
使用 Project Siena 生成一个 Windows Store 应用 继 App Studio 之后微软又一力作 Project Siena [Win8 应用神器]给初学开发 或 对 Wi ...
- 使用 Project Siena 生成一个 Windows Store 应用
继 App Studio 之后微软又一力作 Project Siena [Win8 应用神器]给初学开发 或 对 Windows Store 应用感兴趣的同学们的一个福利,可以通过 一个简单的应用可以 ...
- Windows Store GIF player 诞生记
在Win8上面,Image source切换的时候有bug.当我们短时间定时切换的时候,Image不能正常地显示对应的图片.Image控件又不支持GIF播放,所以GIF图片的播放就是一个非常头痛的问题 ...
- Windows store app[Part 3]:认识WinRT的异步机制
WinRT异步机制的诞生背景 当编写一个触控应用程序时,执行一个耗时函数,并通知UI更新,我们希望所有的交互过程都可以做出快速的反应.流畅的操作感变的十分重要. 在连接外部程序接口获取数据,操作本地数 ...
- PowerShell将Windows store应用程序安装为开发者模式
原文: PowerShell将Windows store应用程序安装为开发者模式 在本地部署Windows 商店应用程序时,我们会遇到Add-AppDevPackage.ps1脚本,这个脚本和所在安装 ...
随机推荐
- mysql--------大数据量分页sql语句优化
分页程序原理很简单,这里就不多说了,本篇文章主要说的是在数据表记录量比较大的情况下,如何将分页SQL做到更优化,让MySQL执行的更快的方法. 一般的情况下,我们的分页SQL语句是这样的: ,; 以上 ...
- 万恶的deferred_segment_creation(延迟块分配)
11gR2开始,空表是不分配segment的.由于没有分配 segment, EXP默认不能导出空表,user_objects有该对象但是 user_segment没有该对象
- XML Publisher Using API’s(转)
原文地址:XML Publisher Using API’s Applications Layer APIsThe applications layer of XML Publisher allows ...
- Linux磁盘管理,vi编辑器以及包管理器
一.Linux磁盘管理 Linux磁盘管理常用的三个命令为df,du,fdisk df:列出文件系统的整体磁盘使用量,利用这个命令来获取磁盘被占用了多少空间,,目前还剩下多少空间用法:df [-ahi ...
- JavaScript学习总结(三)——逻辑And运算符详解
在JavaScript中,逻辑 AND 运算符用双和号(&&)表示 1 var bTrue = true; 2 var bFalse = false; 3 var bResult = ...
- Python笔记初识
Python笔记初识
- 返回最小的k个数
对于一个无序数组,数组中元素为互不相同的整数,请返回其中最小的k个数,顺序与原数组中元素顺序一致. 给定一个整数数组A及它的大小n,同时给定k,请返回其中最小的k个数. 测试样例: [1,2,4,3] ...
- C++面向对象多线程入门
第1节 背景 为了更好的理解多线程的概念,先对进程,线程的概念背景做一下简单介绍. 早期的计算机系统都只允许一个程序独占系统资源,一次只能执行一个程序.在大型机年代,计算能力是一种宝贵资源.对于资 ...
- L224 词汇题
Elaborate 精心的 preparations were being made for the Prime Minister’s official visit to the four forei ...
- HTTP Header之Content-Type
HTTP Header之Content-Type 目录 1. HTTP Header 2. 文件请求和接口请求 3. 几种 Content-Type 3.1 application/x-www-f ...