Single Stack for all generators
| From: | Dmitry Stogov | Date: | Wed, 11 May 2016 14:54:19 +0000 |
| Subject: | Single Stack for all generators | ||
| Groups: | php.internals | ||
| Request: | Send a blank email to internals+get-93241@lists.php.net to get a copy of this message | ||
Hi,
Nikita, please review the patch https://gist.github.com/dstogov/06116f1610f45f8152ine3a9927c6c243ac
It's the next attempt to use the single stack for all generators.
Now I don't see any problems or BC breaks.
In case "yield" is used as an expression in context of function call. e.g.
var_dump(yield), engine backups and then restores active call frame chain.
Bob tested the patch on application that intensively uses generators, and reported:
15% less L2 cache loads
20% less cycle stalls due to memory subsystem
3% more CPU_CLOCK_UNHALTED due to additional freeze/restore.
I'm going to commit this patch tomorrow.
Thanks. Dmitry.