We experience currently bad performance from smart client on several platforms. After investigating (a lot) we eliminate all sources for bad timing except execution of the java smartclient on the client (corporate) computers.
The facts:
We have a pretty big solution, built up with currently 10 modules. With less than 100 forms per module.
Performance issue is NOT on execution or navigation or network or server,...
Performance issue is on load of forms, depending on client machine processor, java version, OS.
Definitely, using java 1.5 on client machines is 10-20% faster than java 1.6.
A typical user interface in this application consist in a main form with about 10-30 sub forms as tabpannels, split panes...
Once loaded and still in memory, returning to such a user interface takes no additional time (no waiting at all).
During wait time, network and server are idle, and java is off course taking most client machine processor resources.
Some typical wait time:
(Dell machines are customer corporate machines with policies but symantec antivirus OFF)
Note that putting antivirus on, results in 20-40% increase in delays depending on processor speed
- From login to main menu (main solution load)
37 sec. on a Dell Latitude D620 using 1Gb RAM and dual core Intel 1.83 GHz
41 sec. on a Dell Precision 380 using 2 Gb RAM and P4 3.8 GHz
15 sec. on a PowerMac G5 using 5Gb RAM and 2 PowerPC at 2.0 Ghz
15 sec. on an IBM Thinkpad using 512 Mb RAM and Pentium M 1.7GHz
- From main menu to stock module
34 sec. on a Dell Latitude D620 using 1Gb RAM and dual core Intel 1.83 GHz
37 sec. on a Dell Precision 380 using 2 Gb RAM and P4 3.8 GHz
15 sec. on a PowerMac G5 using 5Gb RAM and 2 PowerPC at 2.0 Ghz
22 sec. on an IBM Thinkpad using 512 Mb RAM and Pentium M 1.7GHz
As a matter of fact, java execution time is significantly modified by corporate policies. Does anyone have some experience on that subject and may be know which settings we should blame ?
A potential workaround to this will be to preload all modules, consolidating wait time at startup in order the user will not have to wait on features after load is complete. But this is not working as obviously servoy client limits the number of forms residing in memory, even with 1Gb or more RAM reserved for java.
We desperately need a way to either lessen wait times dramatically or manage to keep all the solution in memory. Does anybody face the same issue ? What did you do to improve the solution ?
Any suggestion welcome