Re: few questions about op_array
| From: | Dmitry Stogov | Date: | Thu, 22 Oct 2015 16:39:48 +0000 |
| Subject: | Re: few questions about op_array | ||
| References: | 1 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-88922@lists.php.net to get a copy of this message | ||
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
>