基于Windows 8 XAML的应用程序是否明显快于HTML/CSS应用程序?

Ben*_*oyt 11 html5 xaml microsoft-metro windows-8 winrt-xaml

我们正在研究开发一款Windows 8 Metro风格的应用程序,它的照片非常重,因此我们关注UI性能.在iOS上这是一个简单的决定(Objective-C over HTML来获得我们需要的UI性能),但研究Windows 8我很难说XAML比HTML5/CSS快多少.

我已经看到了XAML和HTML5(如之间的一般比较这一个),并有一个SO答案触摸性能,但不提供数据来支持他的要求或解释为什么XAML更快.

根据我的阅读,HTML5/CSS使用IE10的渲染引擎进行渲染,这意味着它不是超级原生的,可能会更慢.但是我不确定XAML是如何渲染的,或者它是如何"原生"的.

有没有人在两种技术之间进行性能比较,或者您是否可以提供链接以进一步解释每种技术的呈现方式(考虑到性能)?

Pre*_*hts 12

以下是我对此的看法:

首先,XAML可以为您提供比HTML5更好的性能.如果您将XAML与C++结合使用,您将获得WinRT的最佳性能,因为C++是本机代码.如果您使用C#而不依赖于CLR(公共语言运行时),它比本机代码慢.
- 参考文献1
- 参考文献2

其次,如果您要包含许多JavaScript库,那么它可能会对性能产生影响.(jQuery,jqQuery插件,backbone.js,...)

然后,就像你说的那样,JS中的HTML5是使用IE的引擎呈现的.所以这是一个棘手的问题.这实际上取决于你将如何编写代码.有关XAML和JS的最佳实践,请查看此处.

从个人经验.我用XAML/C#编写了一个应用程序.它比Windows Phone 7和7.5感觉更好.主要是因为他们削减了.NET.新的asyncawait模型非常好.在您的案例中,您可以轻松实现异步调用,Web服务或图像渲染.

但我也对数字感兴趣,所以如果有人做过测试,那就太好了.

  • 只是为了澄清,无论您使用的是C++还是C#,XAML渲染引擎都是纯C++/COM.C#背后的代码基本上使用CLR,但渲染却没有.从代码访问UI元素会有性能损失,因为您必须跨越CLR-COM边界,但这是最小的.任何不需要与代码交互的演示文稿(例如动画)都应以相同的速度运行,无论您使用的是C++还是C#.关于JS的其余注释是有效的,但值得注意的是WinRT在首次执行时执行"JIT编译"JavaScript代码. (10认同)