Analyzing Story Performance Using the Performance Insights Tool

Objective

After completing this lesson, you will be able to describe the processes included in the Performance Insights and use the tool to analyze story loading time, statistics, and recommendations available for performance optimization.

Performance Insights

When you are working in Advanced Mode in an SAP Analytics Cloud story, the story Performance Insights tool provides information on loading sequence, as well as story statistics and recommendations based on the assets in your story for you to analyze the story performance.

Loading Sequence

In this tab, you can check the sequence and loading time of the different processes in your story. Each process is represented by a bar. Select a bar to find more details of the corresponding process, including duration, start time, and end time.

SAP Analytics Cloud Performance Insights dialog with Loading Sequence tab selected.

The processes fall under the following three categories in different colors:

  1. Local: Local processes are loaded within the environment of the browser itself.
    • Update Persisted InA: Persisted InA is in the generation process because the cached one is unavailable.
    • Load resource file of custom widget﹤widget name﹥: Downloading a custom widget's resource file.
    • Prepare widgets query: Set up a query to fetch the data for the widgets.
    • Render ﹤widget type﹥﹤widget name﹥: Render or generate the representation of a widget with its associated data. However, if the data refresh is paused, the widget is illustrated without incorporating any data. If not, the widget waits for data to be ready to be rendered.
  2. Remote: Remote processes require interactions with servers outside of your local browser environment. They typically include operations requiring data retrieval from servers, for example, to query data in a chart.
    • Query cube metadata: Seek information about a cube (multi-dimensional structure)’s metadata of a data model.
    • Query model metadata (cache validation): Check if the existing metadata cache is still valid.
    • Query model metadata: Obtain information about a data model's metadata.
    • Fetch widgets data from batch query: Retrieve data of multiple widgets with a batch query.
    • Query data of widget ﹤widget name﹥: Retrieve data of a specific widget if it's not included in a batch query.
    • Load content library: Load the story definition.
    • Get server information: Establish a connection with a remote server and acquire a token.
    • Query dimension hierarchies, members or member description: Retrieve metadata from source.
  3. Script: Script processes refer to the running of Optimized Story Experience API scripts in the browser, which bring dynamic interaction and manipulation with the story elements. For example, to run a script when a button is selected.
    • Run﹤ID.event﹥ script: Run the script for specific Optimized Story Experience APIs and event.
    • Wait for﹤widget name﹥to be rendered: Wait when a script requires a widget that hasn't been fully rendered.
    • Fetch description of members from dimension﹤dimension ID﹥: Obtain a description required for setDimensionFilter or similar APIs.

In addition, you can find the timeline for the following three stages (four if the story contains scripts) during the story loading, marked as distinct points:

  1. Loading screen appears: Loading screen refers to screen that displays Loading your story before your story appears.
  2. Loading screen disappears.
  3. Initial viewport loading completed: Widgets associated with Rendering Phase Initialization, which you can find in the Statistics tab, are rendered.
  4. On initialization scripts completed: The story's current page onInitialization script has been completed.
SAP Analytics Cloud Performance Insights dialog with Loading Sequence tab selected and timeline stage labels displayed.

Note

The following widgets are not shown in the Loading Sequence view:
  • Flow panel widget
  • Tab strip widget
  • Panel widget
  • Page book widget
  • Composite widget
  • Section widget

Statistics

In this tab, you can check the existing story settings, query settings and widget summary. In the widget summary, the number of widgets by widget type and a table showing the runtime visibility and the rendering phase for each widget is displayed.

SAP Analytics Cloud Performance Insights dialog with Statistics tab selected.

The following statistics are available:

  • Story Settings
    • Loading Optimization Settings: Viewport Loading, Background Loading, None
    • Auto Refresh: Yes/no
  • Query Settings
    • Enable Query Batching: Yes/no
    • Queries Per Batch
    • Enable Query Merge: Yes/no
    • Default Cache Limit
    • Override Cache Limit: Yes/no
  • Widget Summary: Clustered by page
    • Number of Widgets: Number of widgets for each widget type
    • Widget Details
      • Name
      • Type: Composite, panel, chart, etc.
      • Visibility setting: Hidden, visible
      • Rendered in: Initialization, after initialization, not yet rendered

Recommendations

In this tab, you can find performance optimization recommendations based on your story context. The recommendations are at widget, page, and story level and are classified into low, medium, and high impact.

Recommendations are grouped together and can include, but not limited to, the following categories:

  • Number of widgets
  • Script running time
  • Query loading time
  • Script optimization
  • Planning optimization

The example below displays a few of the categories as well as possible recommendations.

SAP Analytics Cloud Performance Insights dialog with Recommendations tab selected.

Here are some of the things that are checked during the analysis of the story and may be returned with recommendations:

  • A query loads for a long time.
  • A script runs for a long time.
  • The loading optimization setting is set to None.
  • A filter, variable, or page URL parameter is used.
  • There are variables set on story initialization.
  • The setDimensionFilter API is used with only a member ID.
  • The getMembers API is used when the data volume is large.
  • There is a large number of widgets on the page.
  • There is a large number of pages in the story.
  • The story size is too large.
  • An image is too large.
  • The initial drill level is large.
  • The result set of a widget is large.
  • There is a dimension with exception aggregation.
  • There is an expensive initial populate.
  • There are a high number of zero values.

Things to Consider

When you conduct performance analysis for your story:

  • It's highly recommended to close all other browser tabs for accuracy of the analysis results.
  • It's not recommended to jump to another optimized story in the same browser tab, as the entry to Performance Analysis still exists.
  • The time data may not be completely accurate due to network latency or other factors.
  • You may find gaps in the timeline, as certain internal processes aren’t displayed.
  • If a story loads for the first time, you may find blank space in the timeline, which typically occurs when static resources such as CSS, JS, and images not initially in the cache are being downloaded.
  • Different processes with the same name may occur.

Log in to track your progress & complete quizzes