If you're looking to extend and apply best practice in Qlik Sense, you can find their official guide here, which includes a slideshow and a video, and their reference on optimizing app performance here.
If you do think you have a problem with performance and need to investigate further, Qlik Sense have published a guide which you can access here.
TABLE OF CONTENTS
- Migrating from QlikView?
- Reduce Clutter and improve performance
- Consolidate repeated or similar objects
- Load time calculations
- Review calculations and the data model
- Using Vizlib Extensions with other Extensions
- Optimising Vizlib Professional (Cloud) network performance
- Internet Explorer Users
Migrating from QlikView?
Migrating from QlikView to Qlik Sense is a breeze with Vizlib. It is important to note that QlikView rendered its charts objects on a server, then sent over images of these to the end user's browser.
With Qlik Sense, although the calculations are done on the server, the rendering work is done by the end user's browser, like it is done on a typical website.
Reduce Clutter and improve performance
Having many objects on the sheet and/or over-utilising the extend sheet's functionality can negatively impact performance. Each time a selection is made, the objects are re-calculating. As we all know, this happens on the Qlik Sense Server, but we also ask the browser to re-render the objects after receiving this data.
Consolidate repeated or similar objects
Each object loaded in Qlik Sense has a small overhead. Even adding many small objects (like buttons, for example) to the sheet can slow down the initial load times as well as impact the performance when making selections.
Each loaded object in Qlik Sense will load a separate instance of the same code, consuming precious browser resources.
For example, Vizlib KPI Designer can benefit from using fewer objects and more layers. You could have 4 Objects in a row, but only need to display one. Not only will they load faster, but they will load together, at the same time (Figure 1).
Figure 1: KPI Designer Objects and Layers
Load time calculations
The first impression that a user has of performance is the initial load time of the page. Setting a default bookmark, or limiting the calculations used on the first load (set analysis, conditional expression) will no-doubt increase page-load performance.
Vizlib Filter has the ability to set a default selection on object-load, this is ideal per-sheet, but may not be best placed if you wish to have this running on application first load.
The default selection is made once the extension has finished loading - since this is an extension, the data will have an initial load of its default set (presumably all data), then the selection will be applied - this results in 2 calculations being made.
Qlik Sense's own feature, default bookmarks, apply at an application load level. This feature can set a preferred sheet and default selection when the application is loaded (this only calculates once, which is ideal for application-level default selections).
If you see the image below for extended periods of time, this is only shown when Qlik Sense is calculating data for the objects. Calculations (not just the visualised data, but expressions for color etc) are run by the Qlik Engine, whilst Vizlib extensions offer more options for expressions, Vizlib extensions use the same data and the calculation time will not be impacted in the majority of cases (certain configurations like advanced analytics will of course require another layer of calculation to run forecasts and/or clustering).
Review calculations and the data model
Sometimes, what can slow down an application are the calculations requested by the Qlik Sense Engine. This isn't just calculating the visible expressions, but the expressions which you may likely use to control conditions, the display of colour, or other non-metric related expressions.
To speed this up, this may mean reducing the number of "extra" expressions used to conditionally colour table cells based on their value, or the bars in a chart. It may even be worth limiting data or loading subsets of the data using set analysis (for example, only certain months of data).
The data model is an important consideration as well. Reducing synthetic keys is a standard approach to improving performance as well as normalisation in some cases. Qlik benefits the most from having a star scheme, so this should be considered when building an app.
You can find links to performance articles tagged in the Qlik Design blog.
Using Vizlib Extensions with other Extensions
Adding more extensions to the sheet (even Chrome extensions, like Grammarly or Pinterest) will load themselves onto the sheet, adding complexity and taking longer to load. If you do see some issues, try to remove non-Vizlib extensions and see if there is an improvement in performance. Sometimes, other extensions may face conflicts with our code.
With Chrome extensions (as well as other browser extensions), you can disable them loading on certain sites – this will help to avoid slowing down your browser.
Optimising Vizlib Professional (Cloud) network performance
Internet Explorer Users
Your IT team may wish to consider migrating from IE11 to a modern browser, since software support and even support on windows is decreasing for this browser. Other enterprise browsers are available, like Google Chrome Enterprise.