Bug 160733

Summary: [JSC] Speed up SparseCollection & related maps
Product: WebKit Reporter: Benjamin Poulain <benjamin>
Component: New BugsAssignee: Benjamin Poulain <benjamin>
Status: RESOLVED FIXED    
Severity: Normal CC: commit-queue, keith_miller, mark.lam, msaboff, saam
Priority: P2    
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
Patch none

Description Benjamin Poulain 2016-08-10 00:45:51 PDT
[JSC] Speed up SparseCollection & related maps
Comment 1 Benjamin Poulain 2016-08-10 00:51:56 PDT
Created attachment 285721 [details]
Patch
Comment 2 Benjamin Poulain 2016-08-10 00:54:28 PDT
Numbers on MBP below. I don't think this is relevant for MBP, I am more interested in the bots for dual-core configs.

                                                  Conf#1                    Conf#2                                      
SunSpider:
   3d-cube                                    4.7261+-0.0859     ?      4.7345+-0.0965        ?
   3d-morph                                   4.9893+-0.0508     ?      5.0213+-0.0738        ?
   3d-raytrace                                4.9468+-0.0370     ?      5.0262+-0.0889        ? might be 1.0161x slower
   access-binary-trees                        1.9674+-0.0196     ?      1.9767+-0.0544        ?
   access-fannkuch                            5.6886+-0.1146     !      5.9070+-0.0552        ! definitely 1.0384x slower
   access-nbody                               2.4529+-0.0628            2.3820+-0.0253          might be 1.0298x faster
   access-nsieve                              2.9535+-0.0570            2.9250+-0.0169        
   bitops-3bit-bits-in-byte                   1.0879+-0.0260     ?      1.0904+-0.0313        ?
   bitops-bits-in-byte                        2.6040+-0.0539            2.5926+-0.0471        
   bitops-bitwise-and                         1.9998+-0.0345            1.9760+-0.0147          might be 1.0121x faster
   bitops-nsieve-bits                         3.0860+-0.0283     ?      3.0919+-0.0343        ?
   controlflow-recursive                      2.2840+-0.0195            2.2771+-0.0193        
   crypto-aes                                 4.3992+-0.0604            4.3843+-0.0637        
   crypto-md5                                 2.6474+-0.0244            2.6395+-0.0191        
   crypto-sha1                                2.7947+-0.0699            2.7183+-0.0296          might be 1.0281x faster
   date-format-tofte                          6.4832+-0.1073            6.4402+-0.0280        
   date-format-xparb                          4.6997+-0.0619     ?      4.7147+-0.0674        ?
   math-cordic                                2.7077+-0.0208     ?      2.7264+-0.0184        ?
   math-partial-sums                          4.0195+-0.0813            3.9907+-0.0581        
   math-spectral-norm                         2.0682+-0.0566            2.0334+-0.0395          might be 1.0172x faster
   regexp-dna                                 6.3291+-0.1092     ?      6.4171+-0.1728        ? might be 1.0139x slower
   string-base64                              4.0062+-0.1028     ?      4.0149+-0.0945        ?
   string-fasta                               5.5715+-0.1064            5.4995+-0.0511          might be 1.0131x faster
   string-tagcloud                            8.5775+-0.2117     ^      8.2740+-0.0916        ^ definitely 1.0367x faster
   string-unpack-code                        18.2859+-0.3425     ?     18.4312+-0.4127        ?
   string-validate-input                      4.0729+-0.0477            4.0387+-0.0552        

   <arithmetic>                               4.4403+-0.0177            4.4355+-0.0213          might be 1.0011x faster

                                                  Conf#1                    Conf#2                                      
Octane:
   encrypt                                   0.15507+-0.00154    ?     0.15536+-0.00134       ?
   decrypt                                   2.76505+-0.03807          2.75964+-0.01474       
   deltablue                        x2       0.13048+-0.00091    ?     0.13089+-0.00078       ?
   earley                                    0.28601+-0.00106    ^     0.28399+-0.00067       ^ definitely 1.0071x faster
   boyer                                     4.94989+-0.04288          4.94168+-0.02736       
   navier-stokes                    x2       4.93369+-0.01234    ?     4.93813+-0.01067       ?
   raytrace                         x2       0.78915+-0.00300    ?     0.79218+-0.00258       ?
   richards                         x2       0.08257+-0.00082          0.08253+-0.00080       
   splay                            x2       0.33799+-0.00123    ?     0.33815+-0.00053       ?
   regexp                           x2      16.41046+-0.24608    !    16.92794+-0.21083       ! definitely 1.0315x slower
   pdfjs                            x2      38.44409+-0.16747         38.13687+-0.16331       
   mandreel                         x2      42.61708+-0.11795         42.50511+-0.12022       
   gbemu                            x2      29.45155+-0.10237         29.40763+-0.08854       
   closure                                   0.48012+-0.00120    ?     0.48228+-0.00106       ?
   jquery                                    6.43811+-0.01698          6.41802+-0.01232       
   box2d                            x2       9.23391+-0.03311    ^     9.14402+-0.01908       ^ definitely 1.0098x faster
   zlib                             x2     358.58399+-3.71226    ?   359.20175+-2.80684       ?
   typescript                       x2     598.18347+-3.63030        593.23887+-2.47101       

   <geometric>                               4.99866+-0.00932    ?     5.00115+-0.00708       ? might be 1.0005x slower

                                                  Conf#1                    Conf#2                                      
Kraken:
   ai-astar                                   86.581+-0.782             86.201+-0.720         
   audio-beat-detection                       38.800+-0.074      ?      38.855+-0.119         ?
   audio-dft                                  99.401+-1.354             98.560+-1.191         
   audio-fft                                  30.193+-0.029      ?      30.355+-0.242         ?
   audio-oscillator                           48.086+-0.170      ?      48.321+-0.499         ?
   imaging-darkroom                           61.294+-0.406      ?      61.523+-0.640         ?
   imaging-desaturate                         43.871+-0.379      ?      44.398+-0.834         ? might be 1.0120x slower
   imaging-gaussian-blur                      60.382+-0.762      ?      60.957+-1.005         ?
   json-parse-financial                       34.196+-0.553      ?      34.235+-0.351         ?
   json-stringify-tinderbox                   24.080+-0.723             23.764+-0.568           might be 1.0133x faster
   stanford-crypto-aes                        36.911+-0.159      ?      37.105+-0.267         ?
   stanford-crypto-ccm                        34.079+-0.660      ?      34.460+-0.754         ? might be 1.0112x slower
   stanford-crypto-pbkdf2                     92.815+-0.551             92.679+-0.377         
   stanford-crypto-sha256-iterative           30.898+-0.830             30.547+-0.160           might be 1.0115x faster

   <arithmetic>                               51.542+-0.169      ?      51.569+-0.199         ? might be 1.0005x slower

                                                  Conf#1                    Conf#2                                      
AsmBench:
   bigfib.cpp                               423.1337+-1.1114     ?    423.5357+-1.7526        ?
   cray.c                                   385.6242+-1.6527          383.6395+-1.3958        
   dry.c                                    438.4418+-18.7959    ?    439.2329+-21.7475       ?
   FloatMM.c                                732.6120+-12.5241         725.0609+-11.3600         might be 1.0104x faster
   gcc-loops.cpp                           3596.2006+-11.3758        3593.8597+-12.0773       
   n-body.c                                 801.1809+-2.6053          798.4202+-1.0607        
   Quicksort.c                              392.8017+-1.7963     ?    395.6572+-2.4215        ?
   stepanov_container.cpp                  3268.1336+-10.3936    ?   3275.3264+-10.6962       ?
   Towers.c                                 264.9018+-0.8062          264.8246+-0.6862        

   <geometric>                              718.6115+-3.2411          717.9080+-3.5248          might be 1.0010x faster

                                                  Conf#1                    Conf#2                                      
Geomean of preferred means:
   <scaled-result>                           30.1106+-0.0484           30.1026+-0.0697          might be 1.0003x faster
Comment 3 Saam Barati 2016-08-10 09:43:17 PDT
Comment on attachment 285721 [details]
Patch

r=me
Comment 4 Benjamin Poulain 2016-08-10 14:26:55 PDT
Comment on attachment 285721 [details]
Patch

Clearing flags on attachment: 285721

Committed r204355: <http://trac.webkit.org/changeset/204355>
Comment 5 Benjamin Poulain 2016-08-10 14:26:59 PDT
All reviewed patches have been landed.  Closing bug.