Setting the appropriate evaluation mode for a Property with an expression will optimise performance, and should always be carefully considered to ensure that the Property is evaluated as required, whilst not at the same time damaging performance.
The efficient running of Property evaluation may not be a first thought when building a dataset but properly considered can have a significant impact on optimisation, especially with large datasets.
In order to benefit from Best Practices related to Property value population, you are strongly recommended to read the following article in conjunction with the companion article on Property expression modes
- The default evaluation mode is Auto but beware this is not the preferred option. orgvue will look for expressions (in Properties) that need evaluating and if it finds any, then all Nodes will be evaluated.
- It is self-evident that this is the least efficient mode when considering performance, and should be avoided where possible.
- For standard expressions that do not use hierarchies - particularly where the Property expression mode is set to Fixed - the preference would be to use Node evaluation mode as that will prompt the evaluation only of those Nodes whose values change.
- Beware that the mode None is effectively a flag to orgvue to indicate that this Property is not an expression, and therefore not to evaluate it.
Understanding Property evaluation mode
These options can reduce the amount of data orgvue scans and the number of times expressions are re-evaluated, increasing the speed of orgvue, which can have a high impact particularly on large datasets.
Picking the appropriate evaluation type for each property will increase overall performance.
- Choose the None setting when no cell for this property should be evaluated as an expression
- Avoid using Auto which detects expressions (at a high performance cost) and evaluates them whenever any data changes
- Choose Node when the expression only needs to be re-evaluated when the Node is changed
- Choose On Demand when the Property needs evaluating occasionally (at a time of your choosing)
- Choose Hierarchy when the expression is dependent upon the Node's descendants e.g.
- Choose Script when using 'setvalue' to set a single expression to return the values for multiple Properties
|Evaluation mode||What needs to be changed to prompt a recalculation of a Node’s value?||What happens?|
|None||It will not be calculated||N/A|
|Auto||Any Node’s value for that property||Recalculate all the Nodes in the Dataset|
|Node||One of that Node’s values||Recalculate that Node|
|On demand||Force recalculation by selecting the 'On-demand Properties' icon||Recalculate all the Nodes in the Dataset|
|Hierarchy||One of that Node’s values||Recalculate that Node and all its descendants|
|Script||The Property containing a setvalue expression*||N/A|
* The value is set via an expression or script executed from outside this property. For further information on the setvalue method, please refer to this section of the Gizmo Cookbook.
Force a re-calculation by using one of the following:
orgvue will Reload Dataset
orgvue will recalculate the On-demand Properties selected