Performance issues with prolonged use of form

  • 1
  • Problem
  • Updated 2 years ago
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.
Photo of Peter Larsen

Peter Larsen

  • 412 Points 250 badge 2x thumb
  • Frustrated

Posted 2 years ago

  • 1
Photo of Karen Waldschmitt

Karen Waldschmitt, Official Rep

  • 8,240 Points 5k badge 2x thumb
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
Photo of Peter Larsen

Peter Larsen

  • 412 Points 250 badge 2x thumb
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
Photo of Peter Larsen

Peter Larsen

  • 412 Points 250 badge 2x thumb
Here's a screenshot of the Network log from my Chrome developer tools, with one of the calls selected.
Photo of Peter Larsen

Peter Larsen

  • 412 Points 250 badge 2x thumb
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?
Photo of Peter Larsen

Peter Larsen

  • 412 Points 250 badge 2x thumb
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.
Photo of Janick

Janick

  • 916 Points 500 badge 2x thumb
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