12

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

我已经看到了 XAML 和 HTML5 之间的一般比较(比如这个),并且有一个SO answer涉及性能,但没有提供任何数据来支持他的主张或解释为什么 XAML 更快。

根据我的阅读,HTML5/CSS 是使用 IE10 的渲染引擎渲染的,这意味着它不是超级原生的,可能会更慢。但我不确定 XAML 是如何呈现的,或者它是多么“原生”。

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

4

3 回答 3

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 服务或图像渲染的异步调用。

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

于 2012-09-12T06:35:18.743 回答
4

IE10 有一个硬件加速引擎,包括一个 GPU 加速的 HTML5 画布。这意味着在 HTML5 中的渲染可能与在 XAML 中一样快,因为这两种方式都使用 GPU 进行渲染。

逻辑在 JS 中可能会慢几倍,但通常没关系。如果您的应用程序没有受到大量逻辑处理的瓶颈,并且像许多应用程序一样主要是事件驱动而没有繁重的循环,那么 JS 可能就足够快了。

然后您可能需要考虑将 HTML5 移植到其他平台要容易得多。

于 2012-09-22T12:46:51.603 回答
3

速度并不是一个真正的大问题,除非您正在执行一些需要一些密集处理或需要在特定时间窗口内执行的操作。

实际上,计算已经变得如此之快,花时间在优化上只是花时间来实现新的有用功能。只在需要的地方进行优化。

我会说根据 2 的功能以及您对它们的了解程度做出选择。真的几毫秒并不是很担心。我想说您的大多数最终用户不会对您的应用程序进行基准测试,他们更有可能被特性和功能所吸引。

我们不再在 64kb 的 ram 和 400mhz CPU 上运行。

当然,这是假设您没有做处理器密集型的事情。如果你是,那么你正在一起研究错误的技术。

于 2012-09-24T23:59:02.180 回答