rc002017 Posted July 23, 2011 Share Posted July 23, 2011 Hello What is the recommended method of developing a Unigui app for performance ? I am developing a test app which has multiple panels and buttons, and a page control. Depending on which button is clicked the corresponding panel is set to visible=true, and the others are set to visible=false. Each panel has data controls embedded in them, with one panel containing the page control, which in turn has 6-7 tabbed pages. This amounts to a busy form, and the compiled size of the dll is approx 3mb - without all the functionality and data calls implemented. Performance when running and retrieving data from the back end MSSQL database is very good, however I have a concern about the intial loading time of the dll when called from the web browser. On a local LAN this can be reasonably slow (10-20 seconds) running under IIS 7 on Windows 2008, I presume this is due to the caching time taken by IIS. My main concern is for remote connections. If I connect remotely via a VPN over a DSL line it can take up to 5 minutes for the form to be displayed. This may well be due to heavy traffic on the link, but would the amount of html/javascript/ajax/css etc code generated by Unigui that has to be sent down the line to the browser be a factor in this ? Would it be better then to architect the app as separate, smaller dll's for each panel, and call them as needed, in much the same way as a traditionalweb app calling a.php, b.php, c.php, back to a.php, b.php etc ? I still need to test in off-peak periods to verify whether the dsl link traffic is the issue, but would appreciate comments and suggestions. Thanks. Quote Link to comment Share on other sites More sharing options...
patmap Posted July 23, 2011 Share Posted July 23, 2011 Hi Rob Can you repeat your test for traffic rate with ServerModule.Compression.Enabled := true; ServerModule.Compression.Level = zcMax; ? Best Regards Quote Link to comment Share on other sites More sharing options...
Administrators Farshad Mohajeri Posted July 23, 2011 Administrators Share Posted July 23, 2011 10-20 secs on a local LAN is not normal at all! On a LAN page load must be almost instantaneous. The bottleneck must be somewhere else. Try testing with a project containing only a blank form and see the load time. Quote Link to comment Share on other sites More sharing options...
rc002017 Posted July 25, 2011 Author Share Posted July 25, 2011 Hi Rob Can you repeat your test for traffic rate with ServerModule.Compression.Enabled := true; ServerModule.Compression.Level = zcMax; ? Best Regards and... 10-20 secs on a local LAN is not normal at all! On a LAN page load must be almost instantaneous. The bottleneck must be somewhere else. Try testing with a project containing only a blank form and see the load time. Thanks Patmap and Farshad. I have now tested the original multi-panel app and the blank form app as suggested by Farshad. Neither had compression enabled as suggested by Patmap. Test 1 - loaded in browser running on web server : blank form loads in max 1 sec, multi panel app loads in 3 secs. Test 2 - loaded in browser on pc on same LAN as web server : results same as Test 1. Test 3 - connected via VPN over DSL line during off peak periods : blank form loads in 2 secs, multi-panel app loads in 4-6 secs. In Test 3 scenario there was no difference when I disabled firewall and anti-virus etc on calling pc, response measured with stopwatch was the same. However I noticed that if I closed the app with a "close" button on the form, and then clicked the "Restart Application" link generated by Unigui and placed in the browser, it could take upwards of 3 minutes to reload the app. It was better to close the browser window and call the link again from start. Network traffic on a 10/100 network card on pc (not server) in test 3 was less than 1% (using windows task manager networking monitor), and the source sent to the pc browser for the multi panel app amounted to 31kb when saved to a text file. This is impressive and indicates Unigui does not generate large overhead when sending forms to a browser, considering the dll is 3mb in size. Conclusions : DSL link I was testing on last week was heavily overused, causing slow responses. This could be a downside for Unigui apps as opposed to splitting the app up into a number of smaller html/php etc files, each of which may perform better over a heavily used link. In my opinion network and server design will have to be carefully designed to accommodate larger Unigui apps, as long startup times may affect user perceptions. The performance once up and running due to AJAX is of course one of the big pluses for Unigui apps. Regards Rob Quote Link to comment Share on other sites More sharing options...
Administrators Farshad Mohajeri Posted July 25, 2011 Administrators Share Posted July 25, 2011 Thanks for feedback. Quote Link to comment Share on other sites More sharing options...
Administrators Farshad Mohajeri Posted July 25, 2011 Administrators Share Posted July 25, 2011 Note: Enabling compression will highly improve load time over DSL lines. Quote Link to comment Share on other sites More sharing options...
rc002017 Posted July 25, 2011 Author Share Posted July 25, 2011 Note: Enabling compression will highly improve load time over DSL lines. Thanks, will repeat tests during peak and off peak times using compression and report back. Rob Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.