The current implementation of ItemTreeBuilder that generates encapsulation trees of IItems is very slow. It's using RulesToolkit to retrieve values from IItem objects instead of using the proper accessors. It's also accessing values many more times than strictly needed.
The generation of encapsulation trees should also allow interruption (like the sliding window methods) when generation of trees takes too long and a rule (i.e. Application Halts) is scheduled to be re-run due to e.g. a configuration value change.