Bug 154510

Summary: bmalloc: Don't use a whole page for metadata
Product: WebKit Reporter: Geoffrey Garen <ggaren>
Component: New BugsAssignee: Geoffrey Garen <ggaren>
Status: RESOLVED FIXED    
Severity: Normal CC: barraclough, kling, sam
Priority: P2    
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
Patch kling: review+

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>