- From: Yehuda Katz <wycats@gmail.com>
- Date: Sat, 3 Dec 2011 18:26:28 -0800
Yehuda Katz (ph) 718.877.1325 On Fri, Dec 2, 2011 at 11:24 PM, Ryosuke Niwa <rniwa at webkit.org> wrote: > Hi all, > > Several days ago, we had a discussion about improving DOM performance on > #whatwg where I hypothesized that most of nodes inserted by methods like > insertBefore, appendChild, etc... don't have any children, and therefore we > can bypass checks for HIERARCHY_REQUEST_ERR by just checking the nullity of > firstChild. > > To confirm my hypothesis, I made a custom build of WebKit and collected > statistics, and here's the result. The sample size is 3585 DOM API calls > while browsing facebook, twitter, gmail, google+, and webkit's bugzilla. > > <number of nodes inserted per DOM API call> <percentage> > 1 52.887% > 2 9.763% > 3 6.416% > 100+ 5.132% > 7 4.686% > 6 2.566% > 5 2.120% > 4 1.339% > 8 1.032% > 9 0.837% > > i.e. 52.9% of all inserted nodes don't have any children. > At least when using jQuery, it's decently common to do something like $("#el").append("<p>hi</p>"), which can quite easily create children. jQuery internally creates the nodes in question, inserts them into a documentFragment, and then inserts the documentFragment, so at least in the documentFragment case, I would expect it to be extremely common for children to be present. > > Best, > Ryosuke Niwa > Software Engineer > Google Inc. >
Received on Saturday, 3 December 2011 18:26:28 UTC