Closed mbebenita closed 6 years ago
@mbebenita This needs conflict resolution.
Should be merged on top of #1836. This PR reduces the size of the interpreter loop by factoring out opcodes that are not very frequent. My hope is that ION compilation time will be reduced, especially since it appears to be happening several times. This PR also makes the interpreter loop more clear to understand.
That makes sense, but this branch slows down startup on the startup benchmark, perhaps because Ion compilation (even if it happens multiple times) is still a relatively small portion of the overall time spent in the interpreter loop?
Test | Baseline Mean | Mean | +/- | % | P | Min | Max |
---|---|---|---|---|---|---|---|
startupTime | 871ms | 923ms | 52ms | 5.93 | WORSE | 904ms | 942ms |
vmStartupTime | 182ms | 183ms | 1ms | 0.41 | SAME | 159ms | 205ms |
bgStartupTime | 41ms | 41ms | 1ms | 1.30 | SAME | 37ms | 44ms |
fgStartupTime | 544ms | 574ms | 29ms | 5.38 | WORSE | 545ms | 596ms |
fgRefreshStartupTime | 104ms | 125ms | 21ms | 20.22 | WORSE | 121ms | 131ms |
fgRestartTime | n/a | NaNms | n/a | n/a | n/a | Infinityms | -Infinityms |
totalSize | 34,100kb | 34,093kb | -7kb | -0.02 | SAME | 32,905kb | 34,914kb |
domSize | 171kb | 171kb | 0kb | 0.00 | SAME | 170kb | 171kb |
styleSize | 396kb | 396kb | 0kb | 0.05 | SAME | 396kb | 398kb |
jsObjectsSize | 27,363kb | 27,366kb | 3kb | 0.01 | WORSE | 27,359kb | 27,369kb |
jsStringsSize | 373kb | 373kb | 0kb | -0.07 | SAME | 368kb | 374kb |
jsOtherSize | 5,560kb | 5,549kb | -11kb | -0.20 | SAME | 4,361kb | 6,368kb |
otherSize | 238kb | 238kb | 0kb | 0.17 | SAME | 235kb | 239kb |
USS | n/a | NaNkb | n/a | n/a | n/a | Infinitykb | -Infinitykb |
peakRSS | 394,601kb | 405,166kb | 10,564kb | 2.68 | WORSE | 399,928kb | 411,396kb |
I'm closing this pull request (and all others) as this project is no longer active.
Should be merged on top of #1836. This PR reduces the size of the interpreter loop by factoring out opcodes that are not very frequent. My hope is that ION compilation time will be reduced, especially since it appears to be happening several times. This PR also makes the interpreter loop more clear to understand.