mozilla / pluotsorbet

[ARCHIVED] PluotSorbet is a J2ME-compatible virtual machine written in JavaScript.
GNU General Public License v2.0
237 stars 46 forks source link

Make interpreter loop slimmer. #1843

Closed mbebenita closed 6 years ago

mbebenita commented 9 years ago

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.

mykmelez commented 9 years ago

@mbebenita This needs conflict resolution.

mykmelez commented 9 years ago

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
mykmelez commented 6 years ago

I'm closing this pull request (and all others) as this project is no longer active.