Re: few questions about op_array
| From: | Lin Yo-An | Date: | Fri, 23 Oct 2015 07:31:34 +0000 |
| Subject: | Re: few questions about op_array | ||
| References: | 1 2 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-88923@lists.php.net to get a copy of this message | ||
Hi Dmitry,
I changed and tested it, and it looks like it gains some improvements. how
do you compare the benchmark result? is there a tool doing it?
I currently do:
./sapi/cli/php Zend/bench.php
The result:
https://gist.github.com/4bbc33b7b5dcedc6bd66
On Fri, Oct 23, 2015 at 12:39 AM, Dmitry Stogov <dmitry@zend.com> wrote:
>
> On Oct 22, 2015 3:45 PM, "Lin Yo-An" <cornelius.howl@gmail.com> wrote:
> >
> > Hi all,
> >
> >
> > I am looking into zend op_array structure, and few questions raised in
> my mind:
> >
> > 1. Why op_array->refcount uses *uint32 instead of uint32, is there a
> reason? if we can replace it with uint32, then we might save one emalloc
> call for memory allocation for every op_array allocation?
>
> We may have few different op_array structures with the same opcodes but
> with different names for example. So just uint32won't work.
>
> >
> > 2. There are also a lot of information saved in the op_array structure,
> if we can move line_start, line_end, doc_comments...etc into an external
> structure, then we might be able to reduce the op_array size and decrease
> the cache miss? is it doable?
>
> I'm not sure if patritioning data of op_array, into frequntly and rarely
> used, may make any significant difference. Because we usually work only
> with a single instance of op_array in each moment. Fields reordering alrecy
> helped to reduce cache-misses. But I may be wrog :)
>
> Thanks. Dmitry.
>
> >
> >
> >
> > Cheers,
> > Yo-An Lin
> > https://github.com/c9s
> >
>
--
Best Regards,
Yo-An Lin