Bug 154510 - bmalloc: Don't use a whole page for metadata
Summary: bmalloc: Don't use a whole page for metadata
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: New Bugs (show other bugs)
Version: WebKit Nightly Build
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Geoffrey Garen
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-02-21 00:20 PST by Geoffrey Garen
Modified: 2016-02-21 10:43 PST (History)
3 users (show)

See Also:


Attachments
Patch (22.53 KB, patch)
2016-02-21 00:41 PST, Geoffrey Garen
kling: review+
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Geoffrey Garen 2016-02-21 00:20:26 PST
bmalloc: Don't use a whole page for metadata
Comment 1 Geoffrey Garen 2016-02-21 00:41:24 PST
Created attachment 271878 [details]
Patch
Comment 2 Geoffrey Garen 2016-02-21 00:42:47 PST
Perf numbers on Mac:

                                                      Baseline                          Patch                              Δ
Execution Time:
    churn                                                 80ms                           77ms                 ^ 1.04x faster
    list_allocate                                         77ms                           77ms                               
    tree_allocate                                         83ms                           83ms                               
    tree_churn                                            87ms                           86ms                 ^ 1.01x faster
    fragment                                              94ms                           96ms                 ! 1.02x slower
    fragment_iterate                                      65ms                           63ms                 ^ 1.03x faster
    medium                                               208ms                          206ms                 ^ 1.01x faster
    big                                                  157ms                          163ms                 ! 1.04x slower
    facebook                                             421ms                          419ms                  ^ 1.0x faster
    reddit                                                92ms                           91ms                 ^ 1.01x faster
    flickr                                                98ms                           98ms                               
    theverge                                             117ms                          116ms                 ^ 1.01x faster
    message_one                                          220ms                          219ms                  ^ 1.0x faster
    message_many                                         119ms                          119ms                               
    churn --parallel                                      39ms                           38ms                 ^ 1.03x faster
    list_allocate --parallel                              70ms                           76ms                 ! 1.09x slower
    tree_allocate --parallel                              84ms                           87ms                 ! 1.04x slower
    tree_churn --parallel                                 85ms                           85ms                               
    fragment --parallel                                   51ms                           53ms                 ! 1.04x slower
    fragment_iterate --parallel                           32ms                           32ms                               
    medium --parallel                                    197ms                          196ms                 ^ 1.01x faster
    big --parallel                                       135ms                          134ms                 ^ 1.01x faster

    <geometric mean>                                      99ms                          100ms                  ! 1.0x slower
    <arithmetic mean>                                    119ms                          119ms                  ! 1.0x slower
    <harmonic mean>                                       85ms                           85ms                  ! 1.0x slower

Peak Memory:
    churn                                                812kB                          800kB                ^ 1.01x smaller
    list_allocate                                      2,096kB                        2,096kB                               
    tree_allocate                                      5,504kB                        5,484kB                 ^ 1.0x smaller
    tree_churn                                         4,804kB                        4,792kB                 ^ 1.0x smaller
    fragment                                           7,020kB                        6,988kB                 ^ 1.0x smaller
    fragment_iterate                                  25,704kB                       25,580kB                 ^ 1.0x smaller
    medium                                         1,070,440kB                    1,068,404kB                 ^ 1.0x smaller
    big                                            1,062,472kB                    1,060,444kB                 ^ 1.0x smaller
    facebook                                          74,444kB                       73,896kB                ^ 1.01x smaller
    reddit                                            13,840kB                       13,844kB                  ! 1.0x bigger
    flickr                                            25,788kB                       25,788kB                               
    theverge                                          27,004kB                       26,928kB                 ^ 1.0x smaller
    message_one                                        4,524kB                        4,696kB                 ! 1.04x bigger
    message_many                                       4,928kB                        4,936kB                  ! 1.0x bigger
    churn --parallel                                     944kB                          944kB                               
    list_allocate --parallel                           2,224kB                        2,212kB                ^ 1.01x smaller
    tree_allocate --parallel                           3,328kB                        3,372kB                 ! 1.01x bigger
    tree_churn --parallel                              3,024kB                        3,012kB                 ^ 1.0x smaller
    fragment --parallel                                7,172kB                        7,140kB                 ^ 1.0x smaller
    fragment_iterate --parallel                       25,872kB                       25,688kB                ^ 1.01x smaller
    medium --parallel                              1,067,448kB                    1,066,516kB                 ^ 1.0x smaller
    big --parallel                                 1,058,608kB                    1,057,128kB                 ^ 1.0x smaller

    <geometric mean>                                  16,554kB                       16,542kB                 ^ 1.0x smaller
    <arithmetic mean>                                204,455kB                      204,122kB                 ^ 1.0x smaller
    <harmonic mean>                                    4,241kB                        4,231kB                 ^ 1.0x smaller

Memory at End:
    churn                                                412kB                          396kB                ^ 1.04x smaller
    list_allocate                                        412kB                          408kB                ^ 1.01x smaller
    tree_allocate                                        484kB                          468kB                ^ 1.03x smaller
    tree_churn                                           464kB                          452kB                ^ 1.03x smaller
    fragment                                             476kB                          456kB                ^ 1.04x smaller
    fragment_iterate                                     716kB                          660kB                ^ 1.08x smaller
    medium                                             6,652kB                        4,612kB                ^ 1.44x smaller
    big                                                6,628kB                        4,596kB                ^ 1.44x smaller
    facebook                                           3,520kB                        3,312kB                ^ 1.06x smaller
    reddit                                             2,200kB                        2,228kB                 ! 1.01x bigger
    flickr                                             3,204kB                        3,232kB                 ! 1.01x bigger
    theverge                                           3,264kB                        3,244kB                ^ 1.01x smaller
    message_one                                          692kB                          680kB                ^ 1.02x smaller
    message_many                                       1,080kB                        1,220kB                 ! 1.13x bigger
    churn --parallel                                     544kB                          540kB                ^ 1.01x smaller
    list_allocate --parallel                             592kB                          608kB                 ! 1.03x bigger
    tree_allocate --parallel                             716kB                          716kB                               
    tree_churn --parallel                              1,192kB                        1,144kB                ^ 1.04x smaller
    fragment --parallel                                1,316kB                        1,300kB                ^ 1.01x smaller
    fragment_iterate --parallel                          948kB                          828kB                ^ 1.14x smaller
    medium --parallel                                  6,776kB                        4,740kB                ^ 1.43x smaller
    big --parallel                                     6,744kB                        4,740kB                ^ 1.42x smaller

    <geometric mean>                                   1,331kB                        1,228kB                ^ 1.08x smaller
    <arithmetic mean>                                  2,229kB                        1,845kB                ^ 1.21x smaller
    <harmonic mean>                                      899kB                          870kB                ^ 1.03x smaller
Comment 3 Andreas Kling 2016-02-21 03:48:36 PST
Comment on attachment 271878 [details]
Patch

r=me
Comment 4 Geoffrey Garen 2016-02-21 10:43:17 PST
Committed r196873: <http://trac.webkit.org/changeset/196873>