【问题标题】:Performance of Node-Webkit Desktop ApplicationsNode-Webkit 桌面应用程序的性能
【发布时间】:2015-01-18 09:10:12
【问题描述】:

我需要创建一个必须处理一些动画和一堆逻辑的桌面应用程序。 我想用我以前从未使用过的 node-webkit 创建它。

这里有没有人已经编写了一些桌面应用程序并体验了与用 c++ 编码的东西相比的性能?

【问题讨论】:

    标签: performance desktop-application node-webkit


    【解决方案1】:

    所以这个问题有两个部分:

    1) Javascript 在 V8 (node-webkit) 下与 C++ 编译成原生代码的速度对比

    在大多数计算密集型任务中,您预计执行速度会降低 3 到 10 倍(取决于基准测试)。一个例子可以在http://benchmarksgame.alioth.debian.org/u64/benchmark.php?test=all&lang=v8&lang2=gpp 找到;如果您想要更多示例,请搜索其他 v8 基准。

    2) 使用 Chrome 引擎渲染的基于浏览器的 UI 工具包(基于 DOM 和 CSS,也许还有 WebGL)与任何桌面 UI 工具包(例如 Qt、WxWidgets 等)和/或 3D 的速度比较- 渲染您将与 C++ 一起使用的 API(DirectX、OpenGL 或各种不同的包装器)。

    不幸的是,这很难进行基准测试,因为那里有大量不同的 UI 工具包,对于您可能使用的每种类型的动画/小部件(取决于它们的实现方式),每个工具包都有不同的性能特征。如果您是 3D 渲染并想比较 Chrome 上的 Javascript+WebGL 与使用 DirectX 的 C++,请参阅https://www.scirra.com/blog/58/html5-2d-gaming-performance-analysis 以获取示例基准(他们的数据表明速度降低了约 5 倍);如果您想要更多示例,请搜索比较 WebGL 与 OpenGL 和 DirectX 的性能基准。

    一般来说,实现良好的 C++ 应该比在 node-webkit 下运行的 Javascript 执行得更快,这仅仅是因为远离硬件的抽象层更少。也就是说,除非您正在构建一个计算量非常大的应用程序,否则在现代桌面上可能看不到差异,您应该更多地关注开发的易用性而不是性能。

    使用 node-webkit 还可以让您受益于为浏览器构建的无数 UI 库,这可能会加快您的开发时间,尤其是如果您已经有前端 Web 应用程序开发经验的话。在可移植性方面也有优势 - 除非您使用像 Qt 这样的跨平台 UI 和 C++,否则您将需要特定于平台的 UI 代码,而使用 node-webkit 您可以获得免费的跨平台可移植性。

    【讨论】:

      猜你喜欢
      • 2023-04-04
      • 1970-01-01
      • 1970-01-01
      • 2015-09-22
      • 2013-05-02
      • 2015-04-05
      • 2015-01-24
      • 2013-08-19
      • 1970-01-01
      相关资源
      最近更新 更多