Bug 196369 - [JSC] Share MarkedBlocks in multiple size classes if # of allocations are small
Summary: [JSC] Share MarkedBlocks in multiple size classes if # of allocations are small
Status: NEW
Alias: None
Product: WebKit
Classification: Unclassified
Component: bmalloc (show other bugs)
Version: WebKit Nightly Build
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Yusuke Suzuki
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2019-03-28 12:38 PDT by Yusuke Suzuki
Modified: 2019-03-28 20:08 PDT (History)
2 users (show)

See Also:


Attachments
Exploring the current status. WIP. This patch is not intended to be landed (4.59 KB, patch)
2019-03-28 12:41 PDT, Yusuke Suzuki
no flags Details | Formatted Diff | Diff
Patch (6.18 KB, patch)
2019-03-28 20:06 PDT, Yusuke Suzuki
no flags Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Yusuke Suzuki 2019-03-28 12:38:23 PDT
The similar thing can be done in bmalloc IsoHeap. I'll first investigate the usage of bmalloc IsoHeap.
Comment 1 Yusuke Suzuki 2019-03-28 12:41:55 PDT
Created attachment 366194 [details]
Exploring the current status. WIP. This patch is not intended to be landed
Comment 2 EWS Watchlist 2019-03-28 12:43:07 PDT
Attachment 366194 [details] did not pass style-queue:


ERROR: Source/WebCore/page/mac/PageMac.mm:41:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebCore/ChangeLog:8:  You should remove the 'No new tests' and either add and list tests, or explain why no new tests were possible.  [changelog/nonewtests] [5]
Total errors found: 2 in 6 files


If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 3 Yusuke Suzuki 2019-03-28 20:06:17 PDT
Created attachment 366236 [details]
Patch

Investigating the current status, not intend to land this patch
Comment 4 Yusuke Suzuki 2019-03-28 20:08:19 PDT
Dump of IsoHeap data on apple.com sites (visiting several pages at apple.com). It seems that utilization is not so bad, but I'm still investigating.


[0] objectSize:(216),freeable:(0),footprint:(16384),live:(74),committed:(1),utilization:(0.975586)
[1] objectSize:(96),freeable:(0),footprint:(32768),live:(338),committed:(2),utilization:(0.990234)
[2] objectSize:(184),freeable:(0),footprint:(32768),live:(176),committed:(2),utilization:(0.988281)
[3] objectSize:(96),freeable:(0),footprint:(32768),live:(338),committed:(2),utilization:(0.990234)
[4] objectSize:(96),freeable:(0),footprint:(16384),live:(165),committed:(1),utilization:(0.966797)
[5] objectSize:(272),freeable:(0),footprint:(32768),live:(114),committed:(2),utilization:(0.946289)
[6] objectSize:(272),freeable:(0),footprint:(32768),live:(114),committed:(2),utilization:(0.946289)
[7] objectSize:(256),freeable:(0),footprint:(32768),live:(122),committed:(2),utilization:(0.953125)
[8] objectSize:(96),freeable:(0),footprint:(32768),live:(328),committed:(2),utilization:(0.960938)
[9] objectSize:(152),freeable:(0),footprint:(32768),live:(212),committed:(2),utilization:(0.983398)
[10] objectSize:(328),freeable:(0),footprint:(16384),live:(48),committed:(1),utilization:(0.960938)
[11] objectSize:(512),freeable:(0),footprint:(32768),live:(58),committed:(2),utilization:(0.906250)
[12] objectSize:(528),freeable:(0),footprint:(32768),live:(60),committed:(2),utilization:(0.966797)
[13] objectSize:(272),freeable:(0),footprint:(32768),live:(115),committed:(2),utilization:(0.954590)
[14] objectSize:(152),freeable:(0),footprint:(32768),live:(212),committed:(2),utilization:(0.983398)
[15] objectSize:(280),freeable:(0),footprint:(16384),live:(57),committed:(1),utilization:(0.974121)
[16] objectSize:(632),freeable:(0),footprint:(32768),live:(48),committed:(2),utilization:(0.925781)
[17] objectSize:(384),freeable:(0),footprint:(32768),live:(61),committed:(2),utilization:(0.714844)
[18] objectSize:(280),freeable:(0),footprint:(32768),live:(114),committed:(2),utilization:(0.974121)
[19] objectSize:(576),freeable:(0),footprint:(32768),live:(54),committed:(2),utilization:(0.949219)
[20] objectSize:(344),freeable:(0),footprint:(32768),live:(92),committed:(2),utilization:(0.965820)
[21] objectSize:(216),freeable:(0),footprint:(32768),live:(148),committed:(2),utilization:(0.975586)
[22] objectSize:(248),freeable:(0),footprint:(32768),live:(130),committed:(2),utilization:(0.983887)
[23] objectSize:(344),freeable:(0),footprint:(32768),live:(92),committed:(2),utilization:(0.965820)
[24] objectSize:(448),freeable:(0),footprint:(32768),live:(70),committed:(2),utilization:(0.957031)
[25] objectSize:(256),freeable:(0),footprint:(32768),live:(102),committed:(2),utilization:(0.796875)
[26] objectSize:(32),freeable:(0),footprint:(32768),live:(1018),committed:(2),utilization:(0.994141)
[27] objectSize:(264),freeable:(0),footprint:(32768),live:(122),committed:(2),utilization:(0.982910)
[28] objectSize:(120),freeable:(0),footprint:(32768),live:(256),committed:(2),utilization:(0.937500)
[29] objectSize:(104),freeable:(0),footprint:(32768),live:(307),committed:(2),utilization:(0.974365)
[30] objectSize:(296),freeable:(0),footprint:(32768),live:(104),committed:(2),utilization:(0.939453)
[31] objectSize:(2144),freeable:(0),footprint:(32768),live:(9),committed:(2),utilization:(0.588867)
[32] objectSize:(96),freeable:(0),footprint:(32768),live:(286),committed:(2),utilization:(0.837891)
[33] objectSize:(304),freeable:(0),footprint:(49152),live:(127),committed:(3),utilization:(0.785482)
[34] objectSize:(344),freeable:(0),footprint:(32768),live:(92),committed:(2),utilization:(0.965820)
[35] objectSize:(272),freeable:(0),footprint:(65536),live:(228),committed:(4),utilization:(0.946289)
[36] objectSize:(552),freeable:(0),footprint:(32768),live:(56),committed:(2),utilization:(0.943359)
[37] objectSize:(448),freeable:(0),footprint:(81920),live:(175),committed:(5),utilization:(0.957031)
[38] objectSize:(320),freeable:(0),footprint:(81920),live:(250),committed:(5),utilization:(0.976562)
[39] objectSize:(440),freeable:(0),footprint:(65536),live:(144),committed:(4),utilization:(0.966797)
[40] objectSize:(512),freeable:(0),footprint:(114688),live:(205),committed:(7),utilization:(0.915179)
[41] objectSize:(544),freeable:(0),footprint:(81920),live:(145),committed:(5),utilization:(0.962891)
[42] objectSize:(3400),freeable:(0),footprint:(491520),live:(90),committed:(30),utilization:(0.622559)
[43] objectSize:(104),freeable:(0),footprint:(32768),live:(184),committed:(2),utilization:(0.583984)
[44] objectSize:(288),freeable:(0),footprint:(32768),live:(103),committed:(2),utilization:(0.905273)
[45] objectSize:(232),freeable:(0),footprint:(32768),live:(110),committed:(2),utilization:(0.778809)
[46] objectSize:(336),freeable:(0),footprint:(32768),live:(86),committed:(2),utilization:(0.881836)
[47] objectSize:(400),freeable:(0),footprint:(32768),live:(74),committed:(2),utilization:(0.903320)
[48] objectSize:(296),freeable:(0),footprint:(32768),live:(81),committed:(2),utilization:(0.731689)
[49] objectSize:(184),freeable:(0),footprint:(32768),live:(124),committed:(2),utilization:(0.696289)
[50] objectSize:(96),freeable:(0),footprint:(32768),live:(296),committed:(2),utilization:(0.867188)
[51] objectSize:(72),freeable:(0),footprint:(32768),live:(393),committed:(2),utilization:(0.863525)
[52] objectSize:(64),freeable:(0),footprint:(49152),live:(476),committed:(3),utilization:(0.619792)
[53] objectSize:(168),freeable:(0),footprint:(49152),live:(286),committed:(3),utilization:(0.977539)
[54] objectSize:(88),freeable:(0),footprint:(49152),live:(430),committed:(3),utilization:(0.769857)
[55] objectSize:(136),freeable:(0),footprint:(32768),live:(232),committed:(2),utilization:(0.962891)
[56] objectSize:(184),freeable:(0),footprint:(49152),live:(220),committed:(3),utilization:(0.823568)
[57] objectSize:(368),freeable:(0),footprint:(49152),live:(103),committed:(3),utilization:(0.771159)
[58] objectSize:(104),freeable:(0),footprint:(49152),live:(430),committed:(3),utilization:(0.909831)
[59] objectSize:(112),freeable:(0),footprint:(49152),live:(295),committed:(3),utilization:(0.672201)
[60] objectSize:(160),freeable:(0),footprint:(32768),live:(152),committed:(2),utilization:(0.742188)
[61] objectSize:(96),freeable:(0),footprint:(32768),live:(324),committed:(2),utilization:(0.949219)
[62] objectSize:(96),freeable:(0),footprint:(32768),live:(302),committed:(2),utilization:(0.884766)
[63] objectSize:(232),freeable:(0),footprint:(32768),live:(126),committed:(2),utilization:(0.892090)
[64] objectSize:(96),freeable:(0),footprint:(65536),live:(653),committed:(4),utilization:(0.956543)
[65] objectSize:(96),freeable:(0),footprint:(32768),live:(230),committed:(2),utilization:(0.673828)
[66] objectSize:(96),freeable:(0),footprint:(344064),live:(3547),committed:(21),utilization:(0.989676)
[67] objectSize:(96),freeable:(0),footprint:(32768),live:(292),committed:(2),utilization:(0.855469)
[68] objectSize:(96),freeable:(0),footprint:(81920),live:(718),committed:(5),utilization:(0.841406)
[69] objectSize:(192),freeable:(0),footprint:(49152),live:(196),committed:(3),utilization:(0.765625)
[70] objectSize:(240),freeable:(0),footprint:(49152),live:(189),committed:(3),utilization:(0.922852)
[71] objectSize:(96),freeable:(0),footprint:(32768),live:(326),committed:(2),utilization:(0.955078)
[72] objectSize:(96),freeable:(0),footprint:(32768),live:(277),committed:(2),utilization:(0.811523)
[73] objectSize:(88),freeable:(0),footprint:(32768),live:(327),committed:(2),utilization:(0.878174)
[74] objectSize:(80),freeable:(0),footprint:(32768),live:(304),committed:(2),utilization:(0.742188)
[75] objectSize:(120),freeable:(0),footprint:(81920),live:(606),committed:(5),utilization:(0.887695)
[76] objectSize:(96),freeable:(0),footprint:(49152),live:(338),committed:(3),utilization:(0.660156)
[77] objectSize:(216),freeable:(0),footprint:(32768),live:(148),committed:(2),utilization:(0.975586)
[78] objectSize:(160),freeable:(0),footprint:(49152),live:(199),committed:(3),utilization:(0.647786)
[79] objectSize:(112),freeable:(0),footprint:(32768),live:(280),committed:(2),utilization:(0.957031)
[80] objectSize:(256),freeable:(0),footprint:(98304),live:(289),committed:(6),utilization:(0.752604)
[81] objectSize:(96),freeable:(0),footprint:(49152),live:(426),committed:(3),utilization:(0.832031)
[82] objectSize:(72),freeable:(0),footprint:(704512),live:(9601),committed:(43),utilization:(0.981207)
[83] objectSize:(88),freeable:(0),footprint:(32768),live:(358),committed:(2),utilization:(0.961426)
[84] objectSize:(272),freeable:(0),footprint:(114688),live:(357),committed:(7),utilization:(0.846680)
[85] objectSize:(96),freeable:(0),footprint:(32768),live:(246),committed:(2),utilization:(0.720703)
[86] objectSize:(96),freeable:(0),footprint:(32768),live:(250),committed:(2),utilization:(0.732422)
[87] objectSize:(96),freeable:(0),footprint:(32768),live:(250),committed:(2),utilization:(0.732422)
[88] objectSize:(632),freeable:(0),footprint:(98304),live:(130),committed:(6),utilization:(0.835775)
[89] objectSize:(48),freeable:(0),footprint:(32768),live:(678),committed:(2),utilization:(0.993164)
[90] objectSize:(3440),freeable:(0),footprint:(65536),live:(8),committed:(4),utilization:(0.419922)
[91] objectSize:(1040),freeable:(0),footprint:(131072),live:(111),committed:(8),utilization:(0.880737)
Comment 5 EWS Watchlist 2019-03-28 20:08:24 PDT
Attachment 366236 [details] did not pass style-queue:


ERROR: Source/WebCore/page/mac/PageMac.mm:41:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 1 in 7 files


If any of these errors are false positives, please file a bug against check-webkit-style.