Note that there are some explanatory texts on larger screens.

plurals
  1. POWhat is the runtime of `Node.insertBefore`?
    primarykey
    data
    text
    <p>I realize that each browser would implement it differently, but are there any references or benchmarks that specify this?</p> <p>The simplest implementation would seem to be <code>O(n)</code> in the number of children of <code>Node</code></p> <p>EDIT: I ran some benchmarks. Here are the results</p> <p>FireFox 3.6.10 on Linux</p> <pre><code>inserted 1000 elements into 1000 elements in 131.44 ms (average over 101 trials, 291.31 ms inc appendChild) while in dom: true inserted 1000 elements into 10000 elements in 235.91 ms (average over 11 trials, 1311.36 ms inc appendChild) while in dom: true inserted 1000 elements into 100000 elements in 2349.00 ms (average over 2 trials, 14150.50 ms inc appendChild) while in dom: true inserted 1000 elements into 1000 elements in 13.13 ms (average over 101 trials, 267.00 ms inc appendChild) while in dom: false inserted 1000 elements into 10000 elements in 67.45 ms (average over 11 trials, 1517.09 ms inc appendChild) while in dom: false inserted 1000 elements into 100000 elements in 617.00 ms (average over 2 trials, 15214.50 ms inc appendChild) while in dom: false </code></pre> <p>Chrome 7 on Linux:</p> <pre><code>inserted 1000 elements into 1000 elements in 0.65 ms (average over 101 trials, 30.34 ms inc appendChild) while in dom: true inserted 1000 elements into 10000 elements in 1.55 ms (average over 11 trials, 175.09 ms inc appendChild) while in dom: true inserted 1000 elements into 100000 elements in 12.00 ms (average over 2 trials, 2255.00 ms inc appendChild) while in dom: true inserted 1000 elements into 1000 elements in 0.49 ms (average over 101 trials, 41.13 ms inc appendChild) while in dom: false inserted 1000 elements into 10000 elements in 1.36 ms (average over 11 trials, 301.18 ms inc appendChild) while in dom: false inserted 1000 elements into 100000 elements in 12.00 ms (average over 2 trials, 2565.50 ms inc appendChild) while in dom: false </code></pre> <p>I created a dom Node, populated it with <code>N</code> elements, and then called <code>insertBefore(newchild, randominitialchild)</code> <code>M</code> times.</p> <p><code>in dom: false</code> means that the parent Node was not added to the document tree, so the browser should not be recalculating the layout (I hope?)</p> <p>The results seem to show that inserting is <code>O(n)</code></p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload