Re: [PATCH] Executor improvements
| From: | Dmitry Stogov | Date: | Tue, 10 Jun 2008 12:23:09 +0000 |
| Subject: | Re: [PATCH] Executor improvements | ||
| References: | 1 2 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-38135@lists.php.net to get a copy of this message | ||
Nuno Lopes wrote:
Out of curiosity, what's the slowdown without fastcall?fastcall calling convention assumes passing parameters in registers instead of pushing them on stack. Thanks. Dmitry.
Despite the potential slowdown, I still think this is the way to go. The engine isn't supposed to crash! Nuno ----- Original Message ----- From: "Dmitry Stogov" <dmitry@zend.com> To: "PHP Internals List" <internals@lists.php.net> Cc: "Andi Gutmans" <andi@zend.com>; "Stanislav Malyshev" <stas@zend.com> Sent: Tuesday, June 10, 2008 12:11 PM Subject: [PHP-DEV] [PATCH] Executor improvementsHi, The proposed patch for PHP improves the executor. At first it eliminates direct execute() recursion so the following script won't produce SIGSEGV anymore (It'll produce memory overflow error instead). <?php function foo() { foo(); } foo(); ?> Note that in case some extension (e.q. xdebug) override zend_execute(), VM will use recursive calls. At second executor now uses "fastcall" calling convention, and as result it gives ~5% speedup on bench.php (~3.8 sec instead of ~4.0 sec) Any objections? Thanks. Dmitry.