Vizlib Home

Best practice and performance optimisation in Qlik Sense

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, our 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.

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.

The 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 calculcation 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.

Do check out the Qlik Design Blog, here is a link to performance articles tagged in the 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

If you experience a delay with Vizlib Cloud, there may be some firewall settings or external traffic scanning on your network delaying the connection to our servers. We have servers in multiple regions and the wait time you should be experiencing should be under 500 milliseconds for contacting our nearest server. Use of a VPN can have a bottleneck effect since traffic must go through multiple networks before reaching the end-users browser.

You may also need to consider whitelisting our servers on your network so I would advise working with your network team to optimise your connection to our servers. The servers that would need to be whitelisted, appear in the article below. Vizlib Printing produces a "something went wrong" error 

Internet Explorer Users

If you wish to continue using Internet Explorer, please read this article from Qlik, about (Supported Browsers and Performance Tuning)

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.

Piers is the author of this solution article.

Did you find it helpful? Yes No

Send feedback
Sorry we couldn't be helpful. Help us improve this article with your feedback.