我们正在开发一款Windows 8 Metro风格的应用程序,这款应用程序非常重,因此我们关注的是UI性能。在iOS上,这是一个简单的决定(Objective-C over HTML来获得我们需要的UI性能),但研究Windows 8我很难说XAML比HTML5 / CSS快多少。
我已经看到了XAML和HTML5之间的一般比较(例如this one),并且触及表现了SO answer,但提供了没有数据支持他的声明或解释为什么XAML更快。
从我所读过的内容来看,HTML5 / CSS是使用IE10的渲染引擎渲染的,这意味着它不是超级原生的,可能会更慢。但是我不确定XAML是如何呈现的,或者不知道" native"它是。
是否有人在这两种技术之间进行了性能比较,或者您是否可以提供链接以进一步解释每种技术的呈现方式(考虑到性能)?
答案 0 :(得分:12)
以下是我对此问题的看法:
首先,XAML可以为您提供比HTML5更好的性能。
如果您将XAML与C ++结合使用,您将获得WinRT的最佳性能,因为C ++是本机代码。如果您使用C#而不依赖于CLR(公共语言运行时),它比本机代码慢
- Reference 1
- Reference 2
其次,如果您要包含许多JavaScript库,那么它将会对性能产生影响。 (jQuery,jqQuery插件,backbone.js,...)
然后,就像你说的那样,JS中的HTML5是使用IE的引擎呈现的。所以这是一个棘手的问题。这实际上取决于你将如何编写代码。 有关XAML和JS的最佳实践,您可以查看here。
从个人经验来看。我用XAML / C#编写了一个应用程序。它比Windows Phone 7和7.5感觉更好。主要是因为他们削减了.NET。新的async
和await
模型非常适合。您可以轻松实现异步调用,Web服务或图像渲染。
但我也对这些数字感兴趣,所以如果有人做过测试,那就太棒了。
答案 1 :(得分:3)
IE10有一个硬件加速引擎,包括GPU加速HTML5画布。这意味着HTML5中的渲染可能与XAML一样快,因为两种方式都使用GPU进行渲染。
JS中的逻辑可能慢几倍,但通常无关紧要。如果您的应用程序没有受到大量逻辑处理的瓶颈,并且像许多应用程序主要是事件驱动而没有繁重的循环,JS可能足够快。
然后您可能想要考虑到将HTML5移植到其他平台要容易得多。
答案 2 :(得分:2)
速度并不是一个大问题,除非你正在做一些需要一些强烈处理,或者需要在某个时间窗口执行的速度。
实际上,计算已经变得如此之快,在优化上花费时间只是花费时间来实现新的有用功能。只在需要的地方进行优化。
我会说根据2的功能做出选择,以及你对它们的了解程度。真的几毫秒真的不用担心。我会说你的大多数最终用户都不打算对你的应用程序进行基准测试,他们更有可能被特性和功能所吸引。
我们不再使用64kb的RAM和400mhz的CPU了。
当然,这是假设您没有做一些处理器密集型的事情。如果你是,那么你就是在一起研究错误的技术。