Performance optimization

I am in process of transposing (it is really a re-design and re-write) a VB6 app to a Xojo Web application. I have a few pages done, and I uploaded the application (standalone mode) to my server. A dual Xeon with ample RAM, running Windows Server 64 bits. The app is connected to a MS SQL Server database through ADO.

I find that the application is quite snappy when called from the LAN. However, when I use an external connexion, page rendering is surprisingly slow. I double-checked all the obvious: connexion bottlenecks, etc. I also made sure to avoid things like images in my pages. Still, page rendering is quite slow. Once a page is loaded, data updates happen very fast. It is clearly building the page that takes a long time. Some of my pages contain many controls. The lack of a decent grid (please don’t tell me listbox… I use it. But it is not a grid!) forces me to build my own using labels and text boxes. I limit the number of rows and columns, and use code to scroll data on the grid, rather scrolling the grid with data. My home made grid acts as a window on data, but does not hold all the data. But, as I said, data updates are really snappy. Building the page is what hurts.

I looked, but did not really find best practices for performance optimization. Any good tips will be greatly appreciated.


I’ve seen this too with a moderately heavy control page, especially serving from the US to India. Latency seems to play a factor, and I’m betting there are multiple round trips involved in loading and displaying your page immediately. Open the Network panel of Developer Tools in Chrome to verify. Once everything is loaded, the app performs well, even US to India.

With the way WE works now, you are going to pay this penalty. So you need to hide it from users. One approach you might use, perhaps after sign in, is a splash page that loads typical pages that a user would use, but does not show them. That way, when you Show these pages, they are already loaded.

Thank you for the tip, Brad. This is one strategy that I never even considered. Sounds promising. I’ll give it a try.

I ran an analysis of my page loads last night. It appears that my page elements load fast, but the page load fails on an element such as this one:

host.jsp?pid= … (pid and guid numbers)… On my initial page, it fails after a wait of about 40 seconds. Everything else loads in about 100-200 milliseconds. Data updates are even faster. I seem to have a significant problem with this one only.

Any idea what this is? I identified everything else in the report.