On Oct 1, 2008, at 10:50 AM, Geoffrey Garen wrote: >>> If we believe that JS wrappers are relatively uncommon, we can >>> store them in a Node's "rare data" structure, and bloat only those >>> uncommon nodes that have JS wrappers. >> >> Depending on exactly how common they are, this could be more net >> memory use, if it causes Nodes to have a NodeRareData structure >> that wouldn't otherwise. >> >>> If we believe that JS wrappers are relatively common, we can store >>> them directly in a Node, since putting them in a hashtable is net >>> more memory use. >> >> I think only a minority of nodes have wrappers, but on at least >> some pages it is likely to be a sizable minority. I did not measure >> though - should have. > > I should also mention Sam's suggestion, which I think is pretty > good: All HTMLElements (or perhaps all Elements) get embedded > pointers to their wrappers, since JavaScript traversal of a document > is relatively common. All other DOM objects, including generic > nodes, use a hash table.
That would probably cut the memory use significantly. On the other hand I bet there are some large pages where few of the nodes ever get a JS wrapper in the lifetime of the page (such as cnn.com, slashdot, or the Wikipedia page I cited). To make the right tradeoff we'll also need an estimate of the speed benefit. Regards, Maciej _______________________________________________ webkit-dev mailing list [email protected] http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev

