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 <dmi...@zend.com> wrote: > > 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 > > > -- Best Regards, Yo-An Lin