Hi Rasmus, I'm glad the patch is not a big problem for APC. BTW: I decided not to commit the patch as is, and implement the similar optimization for CVs first. Otherwise I may need to change the way TMP_VAR accessed twice. I'll probably send the patch for review later today.
Thanks. Dmitry. On Fri, Nov 30, 2012 at 11:48 PM, Rasmus Lerdorf <ras...@lerdorf.com> wrote: > On 11/30/2012 09:15 AM, Dmitry Stogov wrote: > > Hi, > > > > The NEWS and UPGRADING explains the details. > > > > http://pastebin.com/VC71Y8LV > > > > The patch is big, but actually quite simple. > > I'm going to commit it on Monday or Tuesday (if no objections). > > > > I'm going to look into the similar optimization for CVs, but it's going > to > > be a bit more difficult. > > Looks good to me. I'll commit this change to APC when you commit it: > > Index: apc_zend.c > =================================================================== > --- apc_zend.c (revision 328577) > +++ apc_zend.c (working copy) > @@ -48,7 +48,11 @@ > static opcode_handler_t *apc_original_opcode_handlers; > static opcode_handler_t apc_opcode_handlers[APC_OPCODE_HANDLER_COUNT]; > > +#if PHP_MAJOR_VERSION >= 6 || PHP_MAJOR_VERSION == 5 && > PHP_MINOR_VERSION >= 5 > +#define APC_EX_T(offset) (*EX_TMP_VAR(execute_data, > offset)) > +#else > #define APC_EX_T(offset) (*(temp_variable > *)((char*)execute_data->Ts + offset)) > +#endif > > And there are a couple of extensions that are going to need similar > changes because of this. pecl/optimizer, pecl/inclued, pecl/xhprof, > pecl/operator and xdebug from a quick check. > > -Rasmus >