* SUMMARY Reduce generated JSON HeapSnapshot size. Do some extra processing while generating the HeapSnapshot JSON to reduce size. I saw a 10% JSON size reduction on large pages (31.4 MB -> 28.0 MB). This: - removes duplicated edges - sorts edges in a reliable order - remove edge name duplication - avoid multiple cell->identifier lookups by replacing JSCell* with identifiers in Edge structs - clears data as early as possible to reduce backend memory footprint during JSON building
Created attachment 274022 [details] [PATCH] Proposed Fix
Comment on attachment 274022 [details] [PATCH] Proposed Fix Do we have a benchmark that shows the reduction here?
(In reply to comment #2) > Comment on attachment 274022 [details] > [PATCH] Proposed Fix > > Do we have a benchmark that shows the reduction here? No, I just logged the JSON snapshot string for some very large web pages (I mostly focused on iCloud.com). I could add a JavaScriptCore/tests/heapProfiler test that creates a lot of objects and measures the generateHeapSnapshot() string length. I shied away from this because it would need to be fuzzy as JavaScriptCore changes. Is there a better way to test this?
Comment on attachment 274022 [details] [PATCH] Proposed Fix Clearing flags on attachment: 274022 Committed r198159: <http://trac.webkit.org/changeset/198159>
All reviewed patches have been landed. Closing bug.