The similar thing can be done in bmalloc IsoHeap. I'll first investigate the usage of bmalloc IsoHeap.
Created attachment 366194 [details] Exploring the current status. WIP. This patch is not intended to be landed
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.
Created attachment 366236 [details] Patch Investigating the current status, not intend to land this patch
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)
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.