Hi Sara,

Interesting patch.

We had very similar idea in the past.
BTW it is possible to optimize function calls mach more.
Not only ZEND_DO_FCALL but also ZEND_INIT_FCALL_BY_NAME can be optimized,
and we can reuse the same cache entries for all op_arrays from the same PHP
file.

I'll make a patch and send it to you in fey days.

Thanks. Dmitry.

> -----Original Message-----
> From: Sara Golemon [mailto:[EMAIL PROTECTED] 
> Sent: Monday, December 04, 2006 8:49 AM
> To: internals@lists.php.net
> Subject: [PHP-DEV] Function call speedup (CV applied to functions)
> 
> 
> It's been a concept stuck in my mind since I first looked 
> into ZE2.1 and 
> saw what compiled variables were, and a recent blog post 
> (http://php100.wordpress.com/2006/11/24/optimizations/) (which got 
> picked up by planet PHP) got my wheels spinning again.  Tonight I 
> decided to actually sit down and see what benefit could be 
> milked from 
> such an endeavor and what it's maintenance cost would be.
> 
> The attached patch shows what I've tossed together for HEAD and the 
> benchmark I've run against it do show some appreciable gains...
> 
> Based on this code snippet, I saw a consistent gain of 
> aproximately 18%: for($i = 0; $i < 10000000; $i++) pi();
> 
> I chose the pi() function as it (A) would actually favor the 
> unpatched 
> approach, being quick to hash and strcmp.  It also (B) 
> performs minimal 
> actual work, simply returning a constant value, thus leaving 
> as much of 
> the execution time to the matter being tested as possible.
> 
> Of course, this isn't a "normal use" example, and it doesn't address 
> dynamic function calls or method calls.  I also havn't looked 
> into class 
> resolution yet, but this is a good spot to begin discussion from.
> 
> Thoughts anyone?
> 
> -Sara
> 

-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to