Performance limitations of web vs desktop applications?

Viewed 572

The project we are working on is a data-intensive real-time application. We are trying to decide whether to make the front-end a desktop (in Java with JavaFX) or web app (in ReactJS). Making it a web app would have many advantages. But we are concerned about performance. We cannot afford to write it as a web app only to discover that it becomes slow or lags under heavy load afterwards. The front-end will have to handle a complex UI and large datasets (potentially with millions of entries).

One thing that particularly concerns us that we could not find any examples of large scale real-time web apps handling the amount of data ours will have to handle. That makes us wonder if it is possible at all.

My research suggests that desktop apps have access to more resources than web apps running in a browser and therefore are able to outperform them.

1 Answers

The user interface should only handle as much data as the user can handle. Can your users read a million data records per second? Probably not. So design the interaction between the user interface and the backend so that the UI only has to process the data the user can consume. You would apply techniques like lazy-loading and paging.

Browser based applications might still not be as fast as native applications, but for most purposes they are "fast enough." But you're not even comparing native to browser, you're comparing Java Swing to browser. In some benchmarks, the Chrome "V8" JavaScript execution engine beats Java. It's not at all clear if a Java Swing UI would be faster or slower than a ReactJS UI.

It is certainly not ideal to commit to a technology and discover months later that it's not going to work out. I would recommend you develop a quick throw-away prototype to get an idea of where the pain points may lie.

Related