Jump to content

Unigui application architecture and performance


rc002017

Recommended Posts

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.

Link to comment
Share on other sites

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

Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
×
×
  • Create New...