Tree was coded with performance in mind. Although, JavaScript itself is a slow language. Flexible model requires some code that slows it down. It's not DOM manipulations, but actually javascript that I couldn't make lighter. Being a part of dojo/widget structure also implies some overhead, but also power.
Almost all operations require small constant time when single node is involved. Depending on your application you may notice slowdown when (most common) creating lots of nodes or performing other batch operations.
In my tests 1000 nodes required 0.7-0.8 sec, growth is linear, depth does not matter, children
are created with createSimple
and added to parent all at once with setChildren
.
Creation from markup or with standard create/addChild routines is 2-3 times slower, because these routines are generic.
Memory footprint (IE,FF) is about 1M per 100 nodes
Fast node creation with dojo tree is 2-3 times slower than xtree 1.7, another tree widget, not so featured, but nicely optimized for performance.