On Oct 22, 2015 3:45 PM, "Lin Yo-An" <cornelius.h...@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
>

Reply via email to