Bug 155460

Summary: Reduce generated JSON HeapSnapshot size
Product: WebKit Reporter: Joseph Pecoraro <joepeck>
Component: JavaScriptCoreAssignee: Joseph Pecoraro <joepeck>
Status: RESOLVED FIXED    
Severity: Normal CC: bburg, commit-queue, ggaren, joepeck, keith_miller, mark.lam, msaboff, saam, timothy
Priority: P2    
Version: WebKit Nightly Build   
Hardware: All   
OS: All   
Attachments:
Description Flags
[PATCH] Proposed Fix none

Joseph Pecoraro
Reported 2016-03-14 13:50:40 PDT
* 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
Attachments
[PATCH] Proposed Fix (21.78 KB, patch)
2016-03-14 13:56 PDT, Joseph Pecoraro
no flags
Joseph Pecoraro
Comment 1 2016-03-14 13:56:50 PDT
Created attachment 274022 [details] [PATCH] Proposed Fix
Geoffrey Garen
Comment 2 2016-03-14 14:00:37 PDT
Comment on attachment 274022 [details] [PATCH] Proposed Fix Do we have a benchmark that shows the reduction here?
Joseph Pecoraro
Comment 3 2016-03-14 14:36:43 PDT
(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?
WebKit Commit Bot
Comment 4 2016-03-14 14:50:07 PDT
Comment on attachment 274022 [details] [PATCH] Proposed Fix Clearing flags on attachment: 274022 Committed r198159: <http://trac.webkit.org/changeset/198159>
WebKit Commit Bot
Comment 5 2016-03-14 14:50:09 PDT
All reviewed patches have been landed. Closing bug.
Note You need to log in before you can comment on or make changes to this bug.