Projects:Performance/Skip 2.50 Windows
Contents |
Introduction
The aim of this project is to reduce time taken in building the application by skipping 2.50 window generation.
So far, all windows in the application are built in 2.50 mode (using WAD) so they can be opened in 3.0 and 2.50 style. Opening in 2.50 is done exceptionally but takes good portion of the build time.
Documentation for developers can be found here.
Requirements
Do not build 2.50 windows unless they are needed because:
- They have at least a Standard UI process. Currently, logic to invoke these processes is implemented in the window servlet, in this case servlet for the tab containing the process and all its ancestor tabs will be generated, but not the html + xml part.
- There is a preference to show the window in 2.50 mode.
All these preventions can be avoided to generate all windows in 2.50 by calling build process with an extra parameter: wad.generateAllClassic250Windows=true
Measures
Here are some metrics taken for the whole build (ant compile.complete
) of the same system keeping and skipping 2.50 windows as reference to measure the improvement.
Measure | Keeping 2.50 | Skipping 2.50 | Improvement |
Total Build time compile.complete
| 5m 27s | 2m 3s | 62% |
wad subtask | 208s | 39s | 81% |
buildAD | 11.8 | 2.9 | 75% |
Generated tabs | 525 | 79 | 85% |
Files generated in srcAD | 5121 | 430 | 92% |
Code generated in srcAD | 114MB | 9.2MB | 92% |
web.xml | 855KB | 259KB | 70% |