【问题标题】:Performance limitations of web vs desktop applications?Web 与桌面应用程序的性能限制?
【发布时间】:2020-08-11 02:39:19
【问题描述】:

我们正在进行的项目是一个数据密集型实时应用程序。我们正在尝试决定是让前端成为桌面(在 Java 中使用 JavaFX)还是 Web 应用程序(在 ReactJS 中)。使其成为网络应用程序将有很多优势。但我们关心的是性能。我们不能把它写成一个 Web 应用程序,然后才发现它变得很慢或在重负载下滞后。前端必须处理复杂的 UI 和大型数据集(可能包含数百万个条目)。

我们特别担心的一件事是,我们找不到任何大型实时网络应用程序处理我们必须处理的数据量的示例。这让我们怀疑这是否可能。

我的研究表明,桌面应用程序比在浏览器中运行的网络应用程序可以访问更多资源,因此能够胜过它们。

【问题讨论】:

  • 我正在将桌面应用程序迁移到 ReactJS 以实现实时定价应用程序。我会说浏览器在渲染 UI 时性能不高,尤其是当它包含密集的 UI 渲染时。 UI 渲染在浏览器中是单线程的,但不适用于桌面应用程序框架
  • @codemax 实际上 Swing 和 JavaFX 都是单线程的。但它们仍然可能比基于浏览器的 UI 表现更好。
  • @VGR 是的,可能性能更高。我们也无法控制浏览器引擎。自定义JVMs 有很多可能性。同样 AFAIK,.NET 支持 UI 的多线程,因此它肯定比浏览器 UI 更快

标签: java reactjs web-applications


【解决方案1】:

用户界面应该只处理用户可以处理的数据。您的用户每秒可以读取一百万条数据记录吗?可能不是。因此,设计用户界面和后端之间的交互,使 UI 只需要处理用户可以使用的数据。您将应用延迟加载和分页等技术。

基于浏览器的应用程序可能仍然不如本机应用程序快,但在大多数情况下,它们“足够快”。但是您甚至没有将本机与浏览器进行比较,而是将 Java Swing 与浏览器进行比较。在某些基准测试中,Chrome “V8” JavaScript 执行引擎胜过 Java。 Java Swing UI 是否会比 ReactJS UI 更快或更慢还不清楚。

投身于某项技术并在几个月后发现它行不通肯定是不理想的。我建议您开发一个快速一次性原型,以了解痛点可能在哪里。

【讨论】:

  • Java 客户端将使用 JavaFX 而不是 Swing。我将编辑我的问题以澄清。
  • 一次性原型是不错的推荐。我会这样做的。
  • 我怀疑 swing 与 javafx 在这里很重要,swing 背后有很多历史,他们现在已经解决了大部分问题,另一方面 javafx 更新更轻,并且没有'没有行李摆动...
  • 我会假设 JavaFX 会胜过 ReactJS 只是因为它可以访问更多资源。你不这么认为吗?
  • @Ángel 是的,我们曾经/现在仍然是。我们现在使用ReasonReasonReact。 Reason 编译为 JavaScript。它运行良好,Joni 说得对,我们可以通过重新设计显着减少前端需要处理的数据量。
猜你喜欢
  • 2015-11-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-18
  • 2011-05-20
  • 2013-03-18
  • 1970-01-01
相关资源
最近更新 更多