Hi all,
we recently upgraded our business application from Visual WebGui to WiseJ. So far everything is working as expected, but we have some serious performance issues compared to Visual WebGui, which were also noticed by a huge share of our customers.
We did several performance tests and profiling both on the server and client side to get to the root of it. The server side is looking fine and in some cases the performance is even better compared to Visual WebGui. However the client side is notably slower. Opening a form in some cases takes 3-4 seconds compared to 1 second in Visual WebGui. This adds up to a significant drop in performance and leads to a poor acceptance with customers, who worked on Visual WebGui previously.
We have attached a performance profiling done with the developer tools of the Chrome browser for WiseJ and Visual WebGui, which shows the difference. We used the exact same form with the same controls and the same data.
Have you had any experience with this and can you give us recommendations on how to improve the performance based on this profiling?
Your support will be much appreciated. Thanks in advance.
Best regards
Markus
VWG used a completely different client-side system based on unreadable XSLT used to transform XML into a large HTML string then inserted in the browser using innerHTML. The first creation of the whole page was basically a large HTML string. Subsequent updates used smaller snippets of XLST again used to transform XML into HTML strings used to replace the HTML of the control to update. That’s why textboxes were losing the focus when a property changed and resizing a column in a grid with many rows and columns was painfully slow. Apart from the fact that it was close to impossible to maintain and extend. I worked on the VWG source code for years.
Wisej instead uses a different approach, in line with any other Single Page Application (SPA) system out there today. Every control is a javascript widget object, which is rendered by accessing the browser DOM through a FastDOM system that minimizes the access to the browser’s DOM. Having a real javascript object system has all the benefits that you can imagine, but obviously creating hundreds of objects in the browser is slower than creating zero (VWG didn’t have any javascript class, just a large flat set of functions).
This is to explain that if you compare a plain HTML page (i.e. VWG) with a page composed with objects (Wisej) the HTML page is faster at first creation. Subsequent work with the application instead it’s faster when you just change properties instead of recreating the HTML every time.
In some of our projects that were on VWG we were able to reduce the initial gap substantially (probably to a 30% difference) while the subsequent interaction was always faster and way more reliable in Wisej.
There are some things you can check:
Contact me at support at iceteagroup.com and we can look in more details at your app.
Please login first to submit.