Four key topics for optimising OrgVue performance

Optimising OrgVue performance can be considered in relation to four topics as detailed below, namely: Infrastructure; Tenant; Dataset; Property

Note many of these topics have their own detailed article associated, use the knowedgebase's inbuilt Search functionality on key terms for more detail if required

 

Case Example

A client using a tenant containing 5 datasets each with approximately 9000 nodes and 68 properties, plus 10 pinned reports, however was observed to take up to one minute to load a dataset: this is far from OrgVue’s upper data storage limit and warranted further investigation

A vast number of variables can affect OrgVue’s performance from the power of your PC right down to the format of individual properties.

The challenge was to speed up the performance of the tenant so that our client can demo the OrgVue dataset during workshops with managers from across the business. The ability to model changes live and quickly measure the impact was critical and therefore relying on static PowerPoint slides was not an option.

After checking the points below and implementing a number of changes the dataset loading time was reduced to just 20 seconds.

 

  1. Infrastructure Optimisation

 

Observation

Recommendation

Reasoning

Working with big datasets is slow on a PC with low RAM

Use a PC with at least 4GB RAM (ideally 8GB)

OrgVue will perform better with more memory available

OrgVue is slow or crashes when many other applications are running on your PC

Minimise the number of other applications open on your PC.

This will maximise the amount of free memory

OrgVue is slow or crashes when running on a browser with many plugins

Disable all plugins which you don’t need. This article explains how to disable plugins on any browser: http://www.howtogeek.com/139916/how-to-view-and-disable-installed-browser-plug-ins-in-any-browser/

Certain plugins e.g. skype can slow browsers down

A warning ‘caution: low memory’ appears in the top right of your screen when using Internet Explorer.

Save your works and close the browser before starting a new OrgVue session. Ideally use Firefox as your browser instead.

IE imposes an upper memory limit of 1.5GB. If this is exceeded IE will suspend or crash Flash Player. Firefox runs Flash Player as a separate process so it performs better in low memory environments

OrgVue is running slowly whilst using an old version of Adobe Flash Player

Right click anywhere in OrgVue workspace. The bottom option in the list will say ‘About Adobe Flash Player XX.X.X.XX’. The numbers at the end are the version number. We recommend you access this link http://www.adobe.com/uk/software/flash/about/ to check for latest versions - Adobe provide a list of available versions and point you at an update if one is available

OrgVue runs of Adobe Flash Player and is performance is optimised in line with the latest release.

Data will not copy to the clipboard when importing/exporting.

Run OrgVue from a Firefox browser instead of Chrome

Chrome places a size limit of 1MB on what can be copied

 

  1. Tenant Optimisation

 

Observation

Recommendation

Reasoning

The tenant is slow to load after entering your login information.

Reduce the number of datasets (including links and reports) by deleting old and unnecessary datasets.

Tenant performance is a function of the number of datasets

A tenant containing many pinned reports is slow to load.

Use paging instead of filtering to pin the same report for multiple subsets of the data.

This allow you to pin just one report with multiple pages (instead of many reports each with a different filter). The fewer reports, the quicker the tenant will be to load.

A tenant containing many look up datasets is slow to load

Combine lookup datasets so that no two lookups share the same Unique ID.

Lookup datasets cause the tenant to perform more slowly, therefore minimise the number where possible. The size and shape of a lookup table also affects this: the ideal lookup table so have few rows and many columns.

Custom colours are required in many datasets in the tenant.

Add new custom colour palettes to the tenant rather than individual datasets

The custom colours will be available for all datasets, branches and reports by only adding one script

 

  1. Dataset Optimisation

 

Observation

Recommendation

Reasoning

Datasets are slow to load and re-load

Reduce the number of properties in the dataset i.e. delete unnecessary columns

 

The speed of a dataset updating is a function of the number of columns

Filter is slow to update

Filter on the least granular property possible. Avoid filtering on e.g. name or employee ID. Instead use properties with fewer categories.

The speed of applying filters is a function of the number of cells

A dataset with many expressions is slow to load

Use ‘settemporary’ to return many values from a single script. How to: https://support.orgvue.com/hc/en-us/articles/205596991-Best-practice-for-OrgVue-optimisation

Only one expression is calculated for each node but results are returned to multiple properties.

Dataset refresh is slow when colouring by ‘passthrough’

Add new custom colour palettes to the tenant rather than individual datasets. Order the colour codes in the order you want them to be used.

The custom colours will be available for all datasets, branches and reports by only adding one script.

An evaluated property includes calculations on other evaluated properties

Consolidate the calculation into just one property

OrgVue will only have to re-calculate one column and won’t get stuck if the order of the properties changes.

  1. Property Optimisation

 

Observation

Recommendation

Reasoning

Lookup properties take a long time to load

Do not ‘restrict to lookup’ unless necessary

OrgVue will slow down as is checks each cells value against the lookup values

Not all nodes are calculating according to the expression in the property value box

Use ‘Fixed value’ mode. To find all evaluated properties use ‘isevaluated:true’ in the property pane

All nodes return this value, regardless of anything else entered in the cells.

Expressions are re-evaluated on every reload of the data

Use ‘On demand’ mode.

Expressions will only re-evaluate when instructed to.

Many expressions have been pasted in individual cells.

Store expressions in the property value box

Expressions stored in individual cells must be compiled for each node. In the property value box it only needs to be compiled once

An expression is being used for a property which once calculated should be static

Use ‘!!*’ to splash values

By splashing the value it will be hardcoded.

Arithmetic expression are slow to calculate

Use node.math()

For further details, please refer to the Gizmo Cookbook

This uses fewer ‘.’s than alternatives and so if quicker to evaluate

Concatenation expressions are slow to load

Use node.format()

For further details, please refer to the Gizmo Cookbook

More efficient than ‘join’ as it uses fewer ‘.’s

An expression references the same property multiple times

Assign a property as a variable if you need to reference it more than once in an expression. How to: https://support.orgvue.com/hc/en-us/articles/205596991-Best-practice-for-OrgVue-optimisation-with-properties-and-expressions

By assigning the variable at the start of the expression the rest of the expression is more efficient.

A property is low to re-calculate, there a different options for which expression to use but you don’t know which one will be quickest.

Test the speed of multiple expressions using:

debug.time(
{iterations:1000},
()=>{function1}, 
()=>{function2}, …)

Debug.time returns a series of box and whisker plots allowing you to see the speed and variability in evaluation time.

 

Addendum: Troubleshooting

Although this will not of itself resolve underlying problems with load times, if you believe potentially underlying expressions are the source, there is a safe mode such that expressions are not evaluated, so if expressions are the problem you will see a marked performance difference on load

https://orgvue2.concentra.co.uk/?safemode=on

If there is a visible change in performance, the next step in the first instance would be to review those that contain nodes() or node.d

It is possible to identify evaluated properties can be found by using

isevaluated:true

as a search option in the left hand property pane.

Otherwise, information in the above article's detail is the best guide to resolutions.

 

 

 

 

 

This article was authored by Miranda Copps from the OrgVue consulting team.

Have more questions? Submit a request

Comments