I discovered an opportunity to gain many % when rendering nodes.
what is the idea? in general
Each time you translate a node, you need to update the size of the canvas. Updating the canvas takes a bit of time (O(n^2)). When you do a layout, each node is translated by the algorithm. The idea is to update the canvas after having done the complete layout.
Cheers, Alexandre