當表示式包含大量同階節點時,該如何改善其效能?
Node.Siblings.Any(SiblingNode.Properties.Boolean Prop)
之類的同階邏輯表示式,可能會在有大量同階的階層中造成效能問題。這是因為每個節點都有一組獨特的同階。例如,對於有子項 A、B、C、D 和 E 的最上層節點,節點 A 有同階 B、C、D、E,節點 B 有同階 A、C、D、E 等。
建構此表示式較佳的方法,是使用子項建立一個您要在父項上參照的特性,然後在節點上參照該特性。例如,您可以使用表示式 Node.Children.Any(ChildNode.Properties.Boolean Prop)
建立一個稱為 ChildrenBooleanSet 的特性,然後在節點上參照該特性:Node.Parent.Properties.ChildrenBooleanSet
。
此類型的表示式結果效能較佳,因為父項值可以被快取。
Caution:
請注意,在上述範例表示式中,子項將包含節點本身,而同階則不包含。您可以視需要新增額外邏輯來篩除節點本身。