NEW 196369
[JSC] Share MarkedBlocks in multiple size classes if # of allocations are small
https://bugs.webkit.org/show_bug.cgi?id=196369
Summary [JSC] Share MarkedBlocks in multiple size classes if # of allocations are small
Yusuke Suzuki
Reported 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.
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
Patch (6.18 KB, patch)
2019-03-28 20:06 PDT, Yusuke Suzuki
no flags
Yusuke Suzuki
Comment 1 2019-03-28 12:41:55 PDT
Created attachment 366194 [details] Exploring the current status. WIP. This patch is not intended to be landed
EWS Watchlist
Comment 2 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.
Yusuke Suzuki
Comment 3 2019-03-28 20:06:17 PDT
Created attachment 366236 [details] Patch Investigating the current status, not intend to land this patch
Yusuke Suzuki
Comment 4 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)
EWS Watchlist
Comment 5 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.
Note You need to log in before you can comment on or make changes to this bug.