W3C home > Mailing lists > Public > whatwg@whatwg.org > December 2011

[whatwg] Stat. on frequency of node insertion without children

From: Ryosuke Niwa <rniwa@webkit.org>
Date: Sat, 3 Dec 2011 23:20:24 -0800
Message-ID: <CABNRm60Bev4U0sJs-+RoDm27pyFQDrAH0bM=0mk1H+d_pNFX9w@mail.gmail.com>
I collected more data per Erik's suggestion:

Sample size: 42,000 - 1

n = Number of inserted nodes
    1     2     7     6  100+     3   10+     5     4   20+
0.679 0.089 0.038 0.029 0.028 0.024 0.021 0.018 0.013 0.011

d = Number of ancestors of new parent
    1   20+   10+     3     2     4     5     9     8     6
0.544 0.160 0.114 0.077 0.061 0.011 0.010 0.008 0.006 0.006

P(either but not both in document) = 0.625610133575

P(d=1 | n=1) ? 0.50007
P(parent not in document | n=1) ? 0.585
P(child not in document | n=1) ? 0.00681
P(either but not both in document | n=1) ? 0.589
P(either but not both in document) ? 0.626
P(n = 1, either but not both in document) ? 0.400
P(n = 1 | either but not both in document) ? 0.639

- Ryosuke

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.
>
> Best,
> Ryosuke Niwa
> Software Engineer
> Google Inc.
>
>
Received on Saturday, 3 December 2011 23:20:24 UTC

This archive was generated by hypermail 2.4.0 : Wednesday, 22 January 2020 16:59:38 UTC