My first guess would be that it is related to the recent addition of the save_locals bitmask which is used to free locals from outer scope earlier when using lambdas. It makes the call frame struct slightly bigger and also adds some additional work that needs to be done on function calls. Of course this change has other important benefits.
There were also some other changes to the call frames, but I would hope most of those are benefitial performance wise.
On 11/23/17 10:14, Stephen R. van den Berg wrote:
Arne Goedeke wrote:
Pretty much the same as 8.1. All three branches (8.0, 8.1, faster_calls). Relative standard deviation removed for readability.
interpreter/automap.pike#efun | 26.3M | 25.5M | 39.0M |
Any explanation why, in general, 8.1 is consistently slightly slower than 8.0? Are we doing more work in 8.1?