User experience performance optimization strategies
User experience performance optimization strategies
Poor application performance can prevent users from meeting service levels and can seriously impact the overall user experience. Careful design and usage of the UI components, case types, and service calls can help avoid performance issues.
Apply the following strategies to provide an optimal user experience:
- Use layout groups to divide a rich user interface
- Leverage case management to divide complex cases
- Run service calls asynchronously
- Investigate PEGA0001 alerts
Using layout groups to divide a rich user interface
Loading a single, complex form into the user's session can impact performance. Design the user interface to allow the user to focus on completing a specific task. Techniques include:
- Breaking complex forms into logical modules that allow users to focus on an immediate goal
- Using layout groups to break long forms into logical groups
Once the form is divided into layout groups, design each layout group to use the deferred load feature. This approach allows data in the layout group to be loaded when the form loads. The data for the other layout groups dynamically loads when users select each layout group on the browser.
Leveraging case management to divide complex cases
Dividing complex cases into smaller, more manageable subcases allows you to process each subcase independently. This technique avoids loading a single large case into the user's session. For example, optimistic locking avoids the need to open parent cases when a subcase is opened. Each subcase opened in a separate PRThread instance executes asynchronously and independently of other cases.
Running service calls asynchronously
For any long-running service call, use the run-in-parallel option on the Connect method. This option allows the service call to run in a separate requestor session. When the service call runs in another requestor, users are not waiting for the service call to finish and can continue with other tasks.
Investigating PEGA0001 alerts
PEGA0001 alerts typically mask other underlying performance issues that can negatively impact the user experience. Leverage one of the Pega-provided performance tools such as AES or PDC to identify the underlying performance issue. Once you have identified the cause of the performance problem, redesign and implement a solution to address the problem.
Examples of alerts that are behind the PEGA0001 alert messages include:
- PEGA0005 — Query time exceeds limit
- PEGA0020 — Total connect interaction time exceeds limit
- PEGA0026 — Time to connect to database exceeds limit
Design practices to avoid
Avoid these design practices:
- Misuse of list controls
- Uncoordinated parallel development
Misusing of list controls
Misuse of list controls is a common problem that can easily be avoided during the design of a solution. Configure autocomplete controls to fetch data from data pages that never return more than 100 rows of data. Limit drop-down list boxes to no more than 50 rows of data.
Autocomplete controls negatively impact the user experience if:
- The potential result set is larger than 100 rows
- If all the results in the list start with the same three characters
Reduce the result set size for all list controls. If the result set size is longer than 100 rows, use a different UI component or data lookup mechanism. Source list controls from data pages that load asynchronously.
Uncoordinated parallel development
Uncoordinated parallel development efforts can also impact performance for the user. For example, multiple development teams could invoke the same web service returning the same result set multiple times and within seconds of each other. Multiple service calls returning the same result set waste CPU cycles and memory. To avoid this situation, devise a strategy for the development teams to coordinate web service calls through use of shared data pages.
Want to help us improve this content?