Performance issues with prolonged use of form

We have a form on which our grantees report to us detailed information on their staff members. A typical user may have 100 staff member records in five office locations and need to update information on, or create new records for, 20 of those staff members. We’ve received multiple complaints that, after 15 minutes or so of use (editing and adding records), the form runs so slowly as to be nearly unusable; the form can take seconds to respond to a key press or a mouse click. Closing the browser and reopening seems to fix the problem. It’s possible that simply loading a different form and then reloading the problematic form also fixes the problem; we haven’t confirmed that.

The form is accessed via IFRAME in a Visualforce page. On initial load, the Skuid form displays a list of office locations. When the user selects an office, a list of the staff members at that office is displayed at the bottom of the form. Selecting a staff member shows a popup containing a Skuid staff editor form on which users can edit and save changes to staff members.

Referring to the Skuid Page Performance Guide, I kept my Chrome developer tools open while working on the form. The most striking thing I noticed was a barrage of XHR calls to https://[our domain].force.com/apexremote. These started around the time I did my first edit of a staff member. As I continued to work on the form for several minutes, editing multiple staff records, I started to notice a slowdown in the form’s performance. I also noticed that the XHR calls were continuing to take place but at a slower pace, and that each one was taking longer to complete. At first, they averaged maybe 250 ms. By the time I stopped working, the average was more like 1.6 s. When I examined the breakdown of the time for each of these calls, it was uniformly the case that the vast majority of the time was in the “Waiting (TTFB)” category. I wonder if these calls and the increasing amount of time required to complete them might be connected to the performance issues of the form.

Any guidance that will help us deliver a usable form to our users will be greatly appreciated.

Peter~

How much time passed between the end of the TTFB and the vertical blue bar? Can you post a screenshot of your network log so we can try to see if we can figure out what’s happening? Can you also post a screenshot of the execution overview from Salesforce’s developer console? 

Thanks!
Karen

Karen,

When I tried to use the developer console to track this activity, I got nothing of any relevance to this issue because it was only tracking page loads, as far as I can tell. In the normal use of this form, there is no page load; everything is handled through Skuid actions on a single form. Also, on the initial load of the page, the form in question is not even loaded in the IFRAME; it takes a UI action before that happens.

That being said, I don’t know much about the logging functionality in Developer Console. In fact, I only learned about it while researching this problem today. Perhaps I’m missing something.

I’ll get you that time gap information and the network log screenshot in my next post.

Thanks,
Peter

Here’s a screenshot of the Network log from my Chrome developer tools, with one of the calls selected.

I’ve figured out why the developer console isn’t telling me what I need to know. This form is for use by our Community users, so I log in as one of those users in order to access it. Once I’m logged in as a Community user, apparently, the Developer Console log stops collecting information. Is there information that I could capture through a Debug log that would be useful to you?

One more potentially relevant piece of information: after I opened the form this morning to create the Network log that I provided above, I left the form and the developer tools open. The Apex calls continued to be fired off, but they stayed around the average length of 250 ms rather than increasing in duration as they did when I continued to work in the form.

Peter,

after analysing the issue and the screenshot above I think there is a infinite loop somewhere. Probably has something to do with model actions.

Thanks,

Janick