Performance


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

Comparison

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.

Important

The results described here refer to operations without any lazy features involved. Most of time you will use lazy creation or lazy loading, or both, and operate with 10000 "virtual" nodes with ease.