Well, Calculated Properties are in fact inherently CPU-intensive. As they are implemented as Beanshell expressions, there are overheads in calling into Beanshell to evaluate them each time they are needed and Beanshell being a fully interpreted language running in an interpreted language are relatively slow and CPU intensive.
You should definitely avoid using a Beanshell expression or referencing a Calculated Property as the target of a ‘Layer follows Expression value’ field in Layer trait. This can cause a very high rate of re-calculation of the property across a number of units. You should also avoid referring to Calculated Properties in Text labels. These 2 case cause the CP to be recalculated every time the piece is redrawn.
Most other usages are fine and only cause a re-calculation of the Property as a result of a user clicking on something, although you will get noticeable delays when issuing GKCs to many counters that require CP’s to be calculated.
Calculated Properties are recalculated whenever ‘something’ requests their value. This will depend on where you have used them.