Summary: | Reduce size of HashMap and HashSet | ||||||||
---|---|---|---|---|---|---|---|---|---|
Product: | WebKit | Reporter: | Alex Christensen <achristensen> | ||||||
Component: | New Bugs | Assignee: | Alex Christensen <achristensen> | ||||||
Status: | RESOLVED FIXED | ||||||||
Severity: | Normal | CC: | benjamin, cdumez, cmarcelo, dbates, ews-watchlist, hi, tsavell, webkit-bug-importer, ysuzuki | ||||||
Priority: | P2 | Keywords: | InRadar | ||||||
Version: | WebKit Nightly Build | ||||||||
Hardware: | Unspecified | ||||||||
OS: | Unspecified | ||||||||
Attachments: |
|
Description
Alex Christensen
2020-02-03 12:10:45 PST
Created attachment 389545 [details]
Patch
Created attachment 389560 [details]
patch
Comment on attachment 389560 [details]
patch
r=me, looks nice!
Here are my JetStream2 results without the change: JetStream2.0:Score:Geometric: 164.7pt stdev=0.7% 3d-cube-SP:Score: 335pt stdev=8.4% :Time:Geometric: 15.0ms stdev=9.3% Average:Time: 11.6ms stdev=1.9% First:Time: 23ms stdev=26.8% Worst:Time: 12.8ms stdev=3.9% 3d-raytrace-SP:Score: 352pt stdev=2.5% :Time:Geometric: 14.2ms stdev=2.6% Average:Time: 10.4ms stdev=1.9% First:Time: 19.8ms stdev=4.2% Worst:Time: 14.0ms stdev=8.4% Air:Score: 299pt stdev=2.8% :Time:Geometric: 16.7ms stdev=2.9% Average:Time: 4.99ms stdev=4.1% First:Time: 51.6ms stdev=2.9% Worst:Time: 18.2ms stdev=3.6% Babylon:Score: 412pt stdev=7.1% :Time:Geometric: 12.2ms stdev=7.2% Average:Time: 4.95ms stdev=5.9% First:Time: 27.0ms stdev=2.6% Worst:Time: 14ms stdev=14.4% Basic:Score: 521pt stdev=3.0% :Time:Geometric: 9.61ms stdev=3.1% Average:Time: 4.77ms stdev=4.8% First:Time: 20.0ms stdev=3.5% Worst:Time: 9.30ms stdev=2.2% Box2D:Score: 352pt stdev=1.2% :Time:Geometric: 14.2ms stdev=1.2% Average:Time: 6.50ms stdev=1.3% First:Time: 43.2ms stdev=1.0% Worst:Time: 10.2ms stdev=2.1% FlightPlanner:Score: 608.4pt stdev=0.6% :Time:Geometric: 8.218ms stdev=0.6% Average:Time: 5.13ms stdev=1.3% First:Time: 13.8ms stdev=3.2% Worst:Time: 7.85ms stdev=4.8% HashSet-wasm:Score: 37pt stdev=15.3% :Time:Geometric: 138ms stdev=13.0% Runtime:Time: 727.8ms stdev=0.9% Startup:Time: 27ms stdev=23.3% ML:Score: 92.8pt stdev=2.2% :Time:Geometric: 53.9ms stdev=2.2% Average:Time: 44.21ms stdev=0.8% First:Time: 74.0ms stdev=5.7% Worst:Time: 47.9ms stdev=1.4% OfflineAssembler:Score: 114pt stdev=13.4% :Time:Geometric: 45ms stdev=16.1% Average:Time: 32.3ms stdev=2.6% First:Time: 76ms stdev=54.7% Worst:Time: 39.0ms stdev=4.7% UniPoker:Score: 300pt stdev=10.2% :Time:Geometric: 17ms stdev=10.6% Average:Time: 11.5ms stdev=1.9% First:Time: 29ms stdev=31.6% Worst:Time: 14.7ms stdev=1.5% WSL:Score: 1.06pt stdev=1.4% :Time:Geometric: 4.70s stdev=1.4% MainRun:Time: 7.57s stdev=1.7% Stdlib:Time: 2.92s stdev=1.3% acorn-wtb:Score: 42.7pt stdev=4.3% :Time:Geometric: 117ms stdev=4.5% Average:Time: 92.0ms stdev=5.3% First:Time: 173.0ms stdev=0.8% Worst:Time: 102ms stdev=9.0% ai-astar:Score: 415pt stdev=7.2% :Time:Geometric: 12.1ms stdev=7.7% Average:Time: 9.1ms stdev=10.0% First:Time: 17ms stdev=46.1% Worst:Time: 12ms stdev=16.0% async-fs:Score: 221pt stdev=3.1% :Time:Geometric: 22.7ms stdev=3.1% Average:Time: 18.3ms stdev=2.6% First:Time: 30.0ms stdev=2.4% Worst:Time: 21.2ms stdev=5.9% babylon-wtb:Score: 53.4pt stdev=2.0% :Time:Geometric: 93.6ms stdev=2.0% Average:Time: 73.2ms stdev=2.2% First:Time: 139ms stdev=2.8% Worst:Time: 81.0ms stdev=2.5% base64-SP:Score: 481pt stdev=8.6% :Time:Geometric: 10.5ms stdev=8.9% Average:Time: 8.14ms stdev=5.1% First:Time: 14ms stdev=14.4% Worst:Time: 9.80ms stdev=9.1% bomb-workers:Score: 103pt stdev=13.2% :Time:Geometric: 49ms stdev=15.8% Average:Time: 44.6ms stdev=3.6% First:Time: 43.8ms stdev=3.0% Worst:Time: 65ms stdev=49.2% cdjs:Score: 94.38pt stdev=0.7% :Time:Geometric: 52.98ms stdev=0.7% Average:Time: 47.59ms stdev=0.9% First:Time: 61.60ms stdev=0.9% Worst:Time: 50.7ms stdev=1.1% chai-wtb:Score: 65.8pt stdev=1.7% :Time:Geometric: 76.0ms stdev=1.7% Average:Time: 59.5ms stdev=1.4% First:Time: 115ms stdev=2.4% Worst:Time: 64.4ms stdev=5.9% coffeescript-wtb:Score: 27.2pt stdev=2.7% :Time:Geometric: 184ms stdev=2.7% Average:Time: 154ms stdev=3.3% First:Time: 241ms stdev=3.8% Worst:Time: 168ms stdev=3.8% crypto:Score: 1.03Kpt stdev=2.4% :Time:Geometric: 4.88ms stdev=2.4% Average:Time: 3.180ms stdev=0.9% First:Time: 8.40ms stdev=6.5% Worst:Time: 4.35ms stdev=3.1% crypto-aes-SP:Score: 533pt stdev=1.5% :Time:Geometric: 9.39ms stdev=1.5% Average:Time: 7.234ms stdev=0.8% First:Time: 13.4ms stdev=4.1% Worst:Time: 8.55ms stdev=2.4% crypto-md5-SP:Score: 546pt stdev=1.8% :Time:Geometric: 9.15ms stdev=1.8% Average:Time: 7.16ms stdev=1.4% First:Time: 13.0ms stdev=0.0% Worst:Time: 8.25ms stdev=4.3% crypto-sha1-SP:Score: 589pt stdev=2.8% :Time:Geometric: 8.50ms stdev=2.8% Average:Time: 5.99ms stdev=3.1% First:Time: 12.0ms stdev=0.0% Worst:Time: 8.55ms stdev=5.6% date-format-tofte-SP:Score: 271pt stdev=2.1% :Time:Geometric: 18.5ms stdev=2.1% Average:Time: 15.4ms stdev=1.2% First:Time: 25.2ms stdev=7.1% Worst:Time: 16.2ms stdev=1.3% date-format-xparb-SP:Score: 284pt stdev=7.5% :Time:Geometric: 17.7ms stdev=7.8% Average:Time: 12.6ms stdev=1.0% First:Time: 31ms stdev=28.6% Worst:Time: 14.3ms stdev=8.5% delta-blue:Score: 731pt stdev=8.5% :Time:Geometric: 6.88ms stdev=9.3% Average:Time: 3.13ms stdev=2.2% First:Time: 17ms stdev=29.7% Worst:Time: 6.25ms stdev=2.8% earley-boyer:Score: 623pt stdev=7.8% :Time:Geometric: 8.07ms stdev=8.0% Average:Time: 4.84ms stdev=3.0% First:Time: 13ms stdev=15.5% Worst:Time: 8.2ms stdev=17.6% espree-wtb:Score: 45.6pt stdev=5.1% :Time:Geometric: 110ms stdev=5.1% Average:Time: 90.3ms stdev=3.6% First:Time: 155ms stdev=9.9% Worst:Time: 95.0ms stdev=3.7% first-inspector-code-load:Score: 206.5pt stdev=0.9% :Time:Geometric: 24.22ms stdev=0.9% Average:Time: 23.43ms stdev=0.9% First:Time: 25.0ms stdev=0.0% Worst:Time: 24.2ms stdev=1.8% float-mm.c:Score: 8.45pt stdev=6.3% :Time:Geometric: 594ms stdev=6.2% Average:Time: 574ms stdev=11.4% First:Time: 618ms stdev=5.7% Worst:Time: 594ms stdev=9.4% gaussian-blur:Score: 327.1pt stdev=0.9% :Time:Geometric: 15.29ms stdev=0.9% Average:Time: 12.14ms stdev=1.0% First:Time: 21.4ms stdev=2.6% Worst:Time: 13.8ms stdev=1.8% gbemu:Score: 126pt stdev=5.1% :Time:Geometric: 39.7ms stdev=5.2% Average:Time: 21.0ms stdev=1.9% First:Time: 73.0ms stdev=3.2% Worst:Time: 41ms stdev=17.1% gcc-loops-wasm:Score: 34.40pt stdev=0.4% :Time:Geometric: 145.3ms stdev=0.4% Runtime:Time: 2.641s stdev=0.8% Startup:Time: 8.00ms stdev=0.0% hash-map:Score: 368pt stdev=2.1% :Time:Geometric: 13.6ms stdev=2.1% Average:Time: 10.00ms stdev=1.0% First:Time: 19.0ms stdev=0.0% Worst:Time: 13.2ms stdev=5.5% jshint-wtb:Score: 33.1pt stdev=1.5% :Time:Geometric: 151ms stdev=1.5% Average:Time: 126ms stdev=2.3% First:Time: 206ms stdev=1.5% Worst:Time: 133ms stdev=3.2% json-parse-inspector:Score: 164pt stdev=1.2% :Time:Geometric: 30.4ms stdev=1.2% Average:Time: 28.86ms stdev=0.7% First:Time: 29.6ms stdev=1.9% Worst:Time: 33.0ms stdev=2.4% json-stringify-inspector:Score: 143pt stdev=2.5% :Time:Geometric: 34.9ms stdev=2.6% Average:Time: 31.5ms stdev=2.0% First:Time: 30.8ms stdev=2.7% Worst:Time: 43.9ms stdev=4.2% lebab-wtb:Score: 38pt stdev=12.7% :Time:Geometric: 133ms stdev=15.0% Average:Time: 102ms stdev=12.3% First:Time: 185ms stdev=4.0% Worst:Time: 127ms stdev=32.8% mandreel:Score: 100.0pt stdev=6.1% :Time:Geometric: 50.2ms stdev=6.5% Average:Time: 31.8ms stdev=1.6% First:Time: 94.6ms stdev=1.6% Worst:Time: 42ms stdev=18.4% multi-inspector-code-load:Score: 323pt stdev=4.5% :Time:Geometric: 15.5ms stdev=4.7% Average:Time: 6.5ms stdev=15.6% First:Time: 24.2ms stdev=1.8% Worst:Time: 24.0ms stdev=0.0% n-body-SP:Score: 719pt stdev=2.1% :Time:Geometric: 6.96ms stdev=2.2% Average:Time: 5.903ms stdev=0.7% First:Time: 9.00ms stdev=0.0% Worst:Time: 6.35ms stdev=6.0% navier-stokes:Score: 761pt stdev=2.8% :Time:Geometric: 6.57ms stdev=2.7% Average:Time: 4.54ms stdev=1.3% First:Time: 11.0ms stdev=6.4% Worst:Time: 5.70ms stdev=3.7% octane-code-load:Score: 737pt stdev=7.9% :Time:Geometric: 6.82ms stdev=7.6% Average:Time: 5.52ms stdev=2.1% First:Time: 8.8ms stdev=14.8% Worst:Time: 6.55ms stdev=6.3% octane-zlib:Score: 18pt stdev=18.1% :Time:Geometric: 290ms stdev=17.0% Average:Time: 169.1ms stdev=0.7% First:Time: 897ms stdev=44.7% Worst:Time: 171ms stdev=1.2% pdfjs:Score: 136pt stdev=9.4% :Time:Geometric: 37ms stdev=10.7% Average:Time: 24.8ms stdev=4.1% First:Time: 53.4ms stdev=1.7% Worst:Time: 40ms stdev=29.7% prepack-wtb:Score: 40.2pt stdev=1.8% :Time:Geometric: 124ms stdev=1.8% Average:Time: 87.1ms stdev=1.9% First:Time: 216ms stdev=1.2% Worst:Time: 103ms stdev=2.5% quicksort-wasm:Score: 325pt stdev=2.6% :Time:Geometric: 15.4ms stdev=2.7% Runtime:Time: 29.0ms stdev=0.0% Startup:Time: 8.20ms stdev=5.5% raytrace:Score: 539pt stdev=2.0% :Time:Geometric: 9.28ms stdev=2.0% Average:Time: 4.59ms stdev=1.5% First:Time: 14.4ms stdev=3.8% Worst:Time: 12.1ms stdev=2.4% regex-dna-SP:Score: 398pt stdev=3.0% :Time:Geometric: 12.6ms stdev=3.1% Average:Time: 11.4ms stdev=3.2% First:Time: 12.2ms stdev=3.7% Worst:Time: 14.3ms stdev=3.1% regexp:Score: 289pt stdev=1.3% :Time:Geometric: 17.3ms stdev=1.3% Average:Time: 15.6ms stdev=1.1% First:Time: 17.8ms stdev=2.5% Worst:Time: 18.6ms stdev=1.2% richards:Score: 689pt stdev=1.4% :Time:Geometric: 7.26ms stdev=1.4% Average:Time: 5.06ms stdev=1.4% First:Time: 12.6ms stdev=4.3% Worst:Time: 6.00ms stdev=0.0% richards-wasm:Score: 92.5pt stdev=3.6% :Time:Geometric: 54.1ms stdev=3.7% Runtime:Time: 565ms stdev=2.0% Startup:Time: 5.20ms stdev=8.6% segmentation:Score: 29.6pt stdev=1.5% :Time:Geometric: 169ms stdev=1.5% Average:Time: 113ms stdev=2.8% First:Time: 228ms stdev=1.0% Worst:Time: 189ms stdev=1.6% splay:Score: 376pt stdev=2.3% :Time:Geometric: 13.3ms stdev=2.2% Average:Time: 10.7ms stdev=1.5% First:Time: 12.8ms stdev=6.5% Worst:Time: 17.1ms stdev=1.7% stanford-crypto-aes:Score: 334pt stdev=2.8% :Time:Geometric: 15.0ms stdev=2.7% Average:Time: 11.5ms stdev=2.3% First:Time: 20.4ms stdev=2.7% Worst:Time: 14.3ms stdev=5.9% stanford-crypto-pbkdf2:Score: 452pt stdev=1.5% :Time:Geometric: 11.1ms stdev=1.5% Average:Time: 9.46ms stdev=2.5% First:Time: 11.2ms stdev=4.0% Worst:Time: 12.8ms stdev=2.0% stanford-crypto-sha256:Score: 562pt stdev=3.7% :Time:Geometric: 8.90ms stdev=3.6% Average:Time: 7.43ms stdev=4.0% First:Time: 11.0ms stdev=0.0% Worst:Time: 8.65ms stdev=7.0% string-unpack-code-SP:Score: 309pt stdev=2.7% :Time:Geometric: 16.2ms stdev=2.7% Average:Time: 14.65ms stdev=0.9% First:Time: 17.8ms stdev=7.3% Worst:Time: 16.3ms stdev=1.7% tagcloud-SP:Score: 226pt stdev=4.9% :Time:Geometric: 22.2ms stdev=4.6% Average:Time: 17.6ms stdev=1.8% First:Time: 26.2ms stdev=3.2% Worst:Time: 23.6ms stdev=9.1% tsf-wasm:Score: 85pt stdev=11.2% :Time:Geometric: 59ms stdev=11.7% Runtime:Time: 307ms stdev=1.5% Startup:Time: 12ms stdev=23.3% typescript:Score: 15.7pt stdev=3.3% :Time:Geometric: 318ms stdev=3.4% Average:Time: 237ms stdev=4.0% First:Time: 466ms stdev=2.6% Worst:Time: 292ms stdev=3.8% uglify-js-wtb:Score: 21.3pt stdev=1.9% :Time:Geometric: 235ms stdev=2.0% Average:Time: 180ms stdev=1.9% First:Time: 355ms stdev=2.0% Worst:Time: 204ms stdev=2.9% And here are my JetStream2 results with the change: JetStream2.0:Score:Geometric: 163pt stdev=2.1% 3d-cube-SP:Score: 343pt stdev=2.4% :Time:Geometric: 14.6ms stdev=2.3% Average:Time: 11.7ms stdev=2.3% First:Time: 19.6ms stdev=2.8% Worst:Time: 13.6ms stdev=6.3% 3d-raytrace-SP:Score: 367pt stdev=3.1% :Time:Geometric: 13.6ms stdev=3.2% Average:Time: 10.3ms stdev=4.1% First:Time: 18.8ms stdev=2.4% Worst:Time: 13.1ms stdev=4.8% Air:Score: 285pt stdev=9.7% :Time:Geometric: 18ms stdev=10.8% Average:Time: 5.09ms stdev=7.8% First:Time: 52.4ms stdev=2.6% Worst:Time: 21ms stdev=23.9% Babylon:Score: 415pt stdev=10.0% :Time:Geometric: 12ms stdev=10.4% Average:Time: 4.91ms stdev=5.4% First:Time: 30ms stdev=21.9% Worst:Time: 12ms stdev=13.1% Basic:Score: 514pt stdev=4.3% :Time:Geometric: 9.74ms stdev=4.5% Average:Time: 4.77ms stdev=4.8% First:Time: 20.2ms stdev=5.4% Worst:Time: 9.60ms stdev=5.1% Box2D:Score: 347pt stdev=2.6% :Time:Geometric: 14.4ms stdev=2.7% Average:Time: 6.59ms stdev=2.9% First:Time: 43.6ms stdev=3.5% Worst:Time: 10.4ms stdev=2.0% FlightPlanner:Score: 592pt stdev=2.8% :Time:Geometric: 8.46ms stdev=2.9% Average:Time: 5.18ms stdev=2.2% First:Time: 14.6ms stdev=3.8% Worst:Time: 8.00ms stdev=6.2% HashSet-wasm:Score: 35.2pt stdev=2.7% :Time:Geometric: 142ms stdev=2.7% Runtime:Time: 735ms stdev=2.3% Startup:Time: 27.6ms stdev=6.6% ML:Score: 87.3pt stdev=7.1% :Time:Geometric: 57.5ms stdev=7.0% Average:Time: 44.0ms stdev=4.3% First:Time: 91ms stdev=17.5% Worst:Time: 48.1ms stdev=5.0% OfflineAssembler:Score: 120pt stdev=1.7% :Time:Geometric: 41.6ms stdev=1.7% Average:Time: 32.6ms stdev=1.7% First:Time: 58.6ms stdev=2.3% Worst:Time: 37.5ms stdev=2.6% UniPoker:Score: 310pt stdev=4.0% :Time:Geometric: 16.2ms stdev=4.1% Average:Time: 11.9ms stdev=1.2% First:Time: 22.6ms stdev=4.0% Worst:Time: 16ms stdev=12.7% WSL:Score: 1.05pt stdev=2.6% :Time:Geometric: 4.76s stdev=2.7% MainRun:Time: 7.69s stdev=3.6% Stdlib:Time: 2.94s stdev=1.7% acorn-wtb:Score: 43.3pt stdev=2.3% :Time:Geometric: 115ms stdev=2.3% Average:Time: 91.3ms stdev=2.6% First:Time: 173ms stdev=2.8% Worst:Time: 97.4ms stdev=3.0% ai-astar:Score: 422pt stdev=7.7% :Time:Geometric: 11.9ms stdev=7.9% Average:Time: 8.4ms stdev=14.8% First:Time: 17ms stdev=40.8% Worst:Time: 12.2ms stdev=8.5% async-fs:Score: 218pt stdev=5.9% :Time:Geometric: 23.0ms stdev=6.1% Average:Time: 18.6ms stdev=5.3% First:Time: 30.8ms stdev=6.7% Worst:Time: 21.3ms stdev=6.8% babylon-wtb:Score: 53.8pt stdev=2.4% :Time:Geometric: 93.1ms stdev=2.4% Average:Time: 71.3ms stdev=2.2% First:Time: 145ms stdev=5.0% Worst:Time: 78.0ms stdev=4.3% base64-SP:Score: 482pt stdev=4.0% :Time:Geometric: 10.4ms stdev=3.9% Average:Time: 8.03ms stdev=5.3% First:Time: 14ms stdev=11.6% Worst:Time: 9.75ms stdev=6.0% bomb-workers:Score: 103pt stdev=5.0% :Time:Geometric: 48.6ms stdev=5.2% Average:Time: 43.4ms stdev=2.2% First:Time: 53ms stdev=12.7% Worst:Time: 50.1ms stdev=3.6% cdjs:Score: 93.6pt stdev=2.3% :Time:Geometric: 53.5ms stdev=2.4% Average:Time: 48.0ms stdev=3.4% First:Time: 62.0ms stdev=1.6% Worst:Time: 51.3ms stdev=2.6% chai-wtb:Score: 63.4pt stdev=6.4% :Time:Geometric: 79.2ms stdev=6.9% Average:Time: 61.8ms stdev=7.5% First:Time: 119ms stdev=2.3% Worst:Time: 68ms stdev=13.0% coffeescript-wtb:Score: 26.7pt stdev=3.5% :Time:Geometric: 187ms stdev=3.6% Average:Time: 152ms stdev=3.5% First:Time: 264ms stdev=17.3% Worst:Time: 165ms stdev=2.8% crypto:Score: 1.05Kpt stdev=2.0% :Time:Geometric: 4.78ms stdev=2.0% Average:Time: 3.22ms stdev=2.7% First:Time: 8.00ms stdev=0.0% Worst:Time: 4.25ms stdev=4.2% crypto-aes-SP:Score: 523pt stdev=2.9% :Time:Geometric: 9.57ms stdev=2.9% Average:Time: 7.37ms stdev=3.1% First:Time: 14.0000000ms stdev=0.0% Worst:Time: 8.50ms stdev=5.9% crypto-md5-SP:Score: 508pt stdev=7.0% :Time:Geometric: 9.88ms stdev=7.0% Average:Time: 7.29ms stdev=2.2% First:Time: 15ms stdev=13.4% Worst:Time: 9.2ms stdev=15.2% crypto-sha1-SP:Score: 580pt stdev=2.9% :Time:Geometric: 8.63ms stdev=2.9% Average:Time: 6.03ms stdev=2.7% First:Time: 12.2ms stdev=3.7% Worst:Time: 8.75ms stdev=4.5% date-format-tofte-SP:Score: 272pt stdev=3.2% :Time:Geometric: 18.4ms stdev=3.2% Average:Time: 15.6ms stdev=3.3% First:Time: 24.0ms stdev=5.9% Worst:Time: 16.6ms stdev=2.5% date-format-xparb-SP:Score: 273pt stdev=5.8% :Time:Geometric: 18.3ms stdev=5.7% Average:Time: 12.9ms stdev=1.8% First:Time: 31ms stdev=15.5% Worst:Time: 15.4ms stdev=9.8% delta-blue:Score: 728pt stdev=8.5% :Time:Geometric: 6.91ms stdev=9.2% Average:Time: 3.11ms stdev=3.6% First:Time: 17ms stdev=33.0% Worst:Time: 6.40ms stdev=4.5% earley-boyer:Score: 624pt stdev=7.9% :Time:Geometric: 8.05ms stdev=8.3% Average:Time: 4.79ms stdev=7.1% First:Time: 12.4ms stdev=4.4% Worst:Time: 8.8ms stdev=17.3% espree-wtb:Score: 44.5pt stdev=9.9% :Time:Geometric: 113ms stdev=11.0% Average:Time: 90.2ms stdev=4.2% First:Time: 179ms stdev=35.6% Worst:Time: 93.0ms stdev=4.9% first-inspector-code-load:Score: 203pt stdev=3.0% :Time:Geometric: 24.7ms stdev=3.0% Average:Time: 23.8ms stdev=2.8% First:Time: 25.4ms stdev=2.2% Worst:Time: 24.9ms stdev=4.3% float-mm.c:Score: 8.19pt stdev=8.1% :Time:Geometric: 613ms stdev=7.5% Average:Time: 611ms stdev=11.2% First:Time: 610ms stdev=9.9% Worst:Time: 624ms stdev=11.8% gaussian-blur:Score: 326pt stdev=2.0% :Time:Geometric: 15.3ms stdev=2.0% Average:Time: 12.2ms stdev=2.2% First:Time: 21.4ms stdev=2.6% Worst:Time: 13.8ms stdev=3.0% gbemu:Score: 130pt stdev=1.9% :Time:Geometric: 38.6ms stdev=1.9% Average:Time: 21.1ms stdev=2.8% First:Time: 73.6ms stdev=2.8% Worst:Time: 36.9ms stdev=2.7% gcc-loops-wasm:Score: 34.7pt stdev=3.6% :Time:Geometric: 144ms stdev=3.5% Runtime:Time: 2.66s stdev=2.3% Startup:Time: 7.80ms stdev=5.7% hash-map:Score: 354pt stdev=2.7% :Time:Geometric: 14.1ms stdev=2.8% Average:Time: 10.2ms stdev=2.9% First:Time: 19.8ms stdev=2.3% Worst:Time: 14.1ms stdev=4.4% jshint-wtb:Score: 32.2pt stdev=2.4% :Time:Geometric: 155ms stdev=2.4% Average:Time: 130ms stdev=1.7% First:Time: 211ms stdev=4.2% Worst:Time: 136ms stdev=2.0% json-parse-inspector:Score: 162pt stdev=3.8% :Time:Geometric: 30.9ms stdev=3.8% Average:Time: 29.3ms stdev=3.9% First:Time: 30.2ms stdev=2.8% Worst:Time: 33.3ms stdev=7.6% json-stringify-inspector:Score: 139pt stdev=6.9% :Time:Geometric: 36.1ms stdev=7.1% Average:Time: 32.4ms stdev=4.8% First:Time: 30.6ms stdev=1.8% Worst:Time: 48ms stdev=16.4% lebab-wtb:Score: 38.0pt stdev=7.8% :Time:Geometric: 132ms stdev=8.1% Average:Time: 101ms stdev=5.5% First:Time: 199ms stdev=10.5% Worst:Time: 115ms stdev=8.4% mandreel:Score: 101pt stdev=1.9% :Time:Geometric: 49.3ms stdev=1.9% Average:Time: 32.0ms stdev=2.3% First:Time: 96.2ms stdev=1.9% Worst:Time: 39.0ms stdev=1.7% multi-inspector-code-load:Score: 318pt stdev=5.9% :Time:Geometric: 15.8ms stdev=6.1% Average:Time: 6.6ms stdev=19.6% First:Time: 24.6ms stdev=3.6% Worst:Time: 24.4ms stdev=3.1% n-body-SP:Score: 705pt stdev=4.4% :Time:Geometric: 7.11ms stdev=4.5% Average:Time: 5.97ms stdev=2.4% First:Time: 9.40ms stdev=5.8% Worst:Time: 6.40ms stdev=5.9% navier-stokes:Score: 738pt stdev=2.3% :Time:Geometric: 6.78ms stdev=2.3% Average:Time: 4.60ms stdev=2.3% First:Time: 11.8ms stdev=3.8% Worst:Time: 5.75ms stdev=3.1% octane-code-load:Score: 708pt stdev=13.6% :Time:Geometric: 7.2ms stdev=13.9% Average:Time: 5.71ms stdev=6.5% First:Time: 9.4ms stdev=22.1% Worst:Time: 6.9ms stdev=13.2% octane-zlib:Score: 17pt stdev=20.9% :Time:Geometric: 296ms stdev=19.5% Average:Time: 172ms stdev=2.5% First:Time: 926ms stdev=48.2% Worst:Time: 175ms stdev=2.8% pdfjs:Score: 139.7pt stdev=0.5% :Time:Geometric: 35.78ms stdev=0.5% Average:Time: 24.33ms stdev=0.6% First:Time: 53.8ms stdev=2.0% Worst:Time: 35.00ms stdev=0.9% prepack-wtb:Score: 39.68pt stdev=0.9% :Time:Geometric: 126.0ms stdev=0.9% Average:Time: 88.40ms stdev=0.9% First:Time: 218ms stdev=1.4% Worst:Time: 104.0ms stdev=0.7% quicksort-wasm:Score: 321pt stdev=3.1% :Time:Geometric: 15.6ms stdev=3.2% Runtime:Time: 29.6ms stdev=1.9% Startup:Time: 8.20ms stdev=5.5% raytrace:Score: 532.1pt stdev=0.9% :Time:Geometric: 9.397ms stdev=0.9% Average:Time: 4.62ms stdev=1.2% First:Time: 14.8ms stdev=3.0% Worst:Time: 12.2ms stdev=2.3% regex-dna-SP:Score: 401pt stdev=2.8% :Time:Geometric: 12.5ms stdev=2.8% Average:Time: 11.3ms stdev=2.4% First:Time: 12.4ms stdev=4.4% Worst:Time: 13.9ms stdev=6.0% regexp:Score: 282pt stdev=2.7% :Time:Geometric: 17.8ms stdev=2.8% Average:Time: 15.65ms stdev=0.6% First:Time: 18.4ms stdev=4.9% Worst:Time: 19.5ms stdev=3.1% richards:Score: 689pt stdev=1.1% :Time:Geometric: 7.25ms stdev=1.1% Average:Time: 5.10ms stdev=3.1% First:Time: 12.6ms stdev=4.3% Worst:Time: 5.95ms stdev=1.9% richards-wasm:Score: 93.5pt stdev=4.3% :Time:Geometric: 53.5ms stdev=4.5% Runtime:Time: 552ms stdev=2.1% Startup:Time: 5.20ms stdev=8.6% segmentation:Score: 28.9pt stdev=2.7% :Time:Geometric: 173ms stdev=2.6% Average:Time: 115ms stdev=5.0% First:Time: 234ms stdev=1.7% Worst:Time: 192ms stdev=3.1% splay:Score: 373pt stdev=2.1% :Time:Geometric: 13.4ms stdev=2.1% Average:Time: 10.9ms stdev=1.3% First:Time: 12.8ms stdev=3.5% Worst:Time: 17.4ms stdev=3.5% stanford-crypto-aes:Score: 330pt stdev=1.7% :Time:Geometric: 15.2ms stdev=1.7% Average:Time: 11.4ms stdev=1.5% First:Time: 20.6ms stdev=2.7% Worst:Time: 14.8ms stdev=7.2% stanford-crypto-pbkdf2:Score: 453pt stdev=2.5% :Time:Geometric: 11.0ms stdev=2.5% Average:Time: 9.32ms stdev=1.6% First:Time: 11.4ms stdev=7.8% Worst:Time: 12.7ms stdev=2.6% stanford-crypto-sha256:Score: 552pt stdev=4.8% :Time:Geometric: 9.08ms stdev=4.8% Average:Time: 7.38ms stdev=4.6% First:Time: 11.6ms stdev=7.7% Worst:Time: 8.75ms stdev=4.0% string-unpack-code-SP:Score: 303pt stdev=1.6% :Time:Geometric: 16.5ms stdev=1.6% Average:Time: 14.80ms stdev=0.8% First:Time: 18.2ms stdev=2.5% Worst:Time: 16.7ms stdev=2.7% tagcloud-SP:Score: 241pt stdev=3.8% :Time:Geometric: 20.8ms stdev=3.9% Average:Time: 17.0ms stdev=1.5% First:Time: 25.8ms stdev=1.7% Worst:Time: 21ms stdev=10.2% tsf-wasm:Score: 80pt stdev=19.4% :Time:Geometric: 64ms stdev=21.5% Runtime:Time: 299ms stdev=4.3% Startup:Time: 15ms stdev=49.1% typescript:Score: 15.6pt stdev=2.6% :Time:Geometric: 320ms stdev=2.6% Average:Time: 238ms stdev=3.1% First:Time: 470ms stdev=2.7% Worst:Time: 295ms stdev=2.3% uglify-js-wtb:Score: 21.0pt stdev=2.5% :Time:Geometric: 238ms stdev=2.5% Average:Time: 183ms stdev=2.5% First:Time: 356ms stdev=2.2% Worst:Time: 207ms stdev=3.1% There are some small increases and some small decreases, but everything seems to be within noise. I'm planning to commit this and see if our bots agree. Comment on attachment 389560 [details] patch View in context: https://bugs.webkit.org/attachment.cgi?id=389560&action=review +1, this is awesome =D > Source/WTF/wtf/HashTable.h:663 > + return nullptr; > + unsigned sizeMask = tableSizeMask(); Style: I'd add a newline between these > Source/WTF/wtf/HashTable.h:1293 > m_table = allocateTable(newTableSize); > + setTableSize(newTableSize); > + setTableSizeMask(newTableSize - 1); > + setDeletedCount(0); > + setKeyCount(oldKeyCount); Should we move all of this inside `allocateTable`, similar to how the table's size is pulled out of the `ValueType* table` inside `deallocateTable`? > Source/WTF/wtf/HashTable.h:1362 > + setKeyCount(otherKeyCount); > + setDeletedCount(0); I would guess no, but does the order of these matter? Above, you `setKeyCount` after `setDeletedCount`. Comment on attachment 389560 [details] patch View in context: https://bugs.webkit.org/attachment.cgi?id=389560&action=review >> Source/WTF/wtf/HashTable.h:1293 >> + setKeyCount(oldKeyCount); > > Should we move all of this inside `allocateTable`, similar to how the table's size is pulled out of the `ValueType* table` inside `deallocateTable`? We could, and all 4 do need to be initialized, but there are two reasons not to: 1. We would have to pass the keyCount into the call to allocateTable, which would be strange. 2. Then the memory allocator would be responsible for initializing some memory but not all. I prefer to keep the existing model where the caller is responsible for initializing all the memory. >> Source/WTF/wtf/HashTable.h:1362 >> + setDeletedCount(0); > > I would guess no, but does the order of these matter? Above, you `setKeyCount` after `setDeletedCount`. Order doesn't matter here. It's just writing 4 integers. All metadata must be initialized. Comment on attachment 389560 [details] patch View in context: https://bugs.webkit.org/attachment.cgi?id=389560&action=review > Source/WTF/wtf/HashTable.h:1196 > + return reinterpret_cast<ValueType*>(static_cast<char*>(HashTableMalloc::zeroedMalloc(metadataSize + size * sizeof(ValueType))) + metadataSize); One good addition is, `static_assert(metadataSize % alignof(ValueType) == 0)` to ensure that offsetted vector is still meeting alignment requirement. Note: this was intended to help with <rdar://problem/58066381> It looks like these changes broke 3 lldb tests. Tracking in https://bugs.webkit.org/show_bug.cgi?id=207204 |