We constantly work towards improving the efficiency and performance of the WebUI. One such improvement we have made, which will be part of AIMMS version 4.78, is smarter delivery of WebUI components. This is a backend improvement that is done on two major aspects of the WebUI.
- Network-bound optimization - This improves the loading of the application and mostly affects first-time visitors, basically when the application is launched the first time.
(due to caching after the first visit) - CPU-bound optimization - This improves the rendering of the application which mostly affects second-time visitors, basically when the application is re-launched with the same version and the same browser.
To improve the loading of the application we made the following changes:
- Combing all custom Javascript & CSS - Currently, we load both the components separately.
- Embed translation in the initial HTML - Currently, the translation file is embedded after the initial load.
- Compress all Javascript/CSS & HTML resources.
- Reduce the main Javascript bundle size by a factor of 10x.
- Parallelize fetching JS/CSS/Fonts resources. - Currently, we load the resources sequentially.
To improve the rendering of the application post the first launch, we made the below changes:
- Loaded the contents in the navigation menu on demand and with caching, which means the navigation menu is constructed only when it clicked, and once it is constructed we cache it.
- We optimized the jQuery core when rendering DOM elements.
We recorded measurements to check the impact of our changes and we measured performance for real models. The overall results are as follows:
- 30% faster load time for first-time visitor
- 22% faster load time for second-time visitor
- Some specific applications like our SC Navigator applications saw a 3x faster load for first-time visitors.
There are some key points to see improvements:
- The more custom JS/CSS/Translation you have, the more impact you will see in load times.
- The larger number of pages you have in your application, the larger impact you will experience.
- The higher latency your end-user has, the more impact you will see.
If your application is already fast or fairly fast, these improvements might seem to not make much of an impact.
If you would like to have your model profiled please reach out to us and we will get in touch with details.
Thanks,
Team WebUI