On 2/5/19 1:48 AM, Benjamin Eberlei wrote:
> 
> 
> On Mon, Feb 4, 2019 at 10:29 PM Benjamin Eberlei <kont...@beberlei.de 
> <mailto:kont...@beberlei.de>> wrote:
> 
> 
> 
>     On Thu, Jan 31, 2019 at 10:44 AM Dmitry Stogov <dmi...@zend.com
>     <mailto:dmi...@zend.com>> wrote:
> 
>         Hi Internals,
> 
> 
>         I'm glad to finally propose including JIT into PHP.
> 
> 
>         https://wiki.php.net/rfc/jit
> 
> 
>         In the current state it may be included both into PHP-8, where
>         we are going to continue active improvement, and into PHP-7.4,
>         as an experimental feature.
> 
> 
>     Can you give some information on if there are pre-conditions that
>     must hold for a function to be jitted, or quit conditions that force
>     the JIT to be reverted for a function?

-dopcache.jit=1245 will lead to JIT only functions with @jit doc-comment 
tag. It's possible to extend this manual control.

>     In addition, it would be
>     helpful for testing if there was a way to find out if a function was
>     jitted, maybe through ReflectionMethod/Function or
>     opcache_get_status() ?

yes. This makes sense.

> 
> And as a follow up, the JIT seems to affect zend_execute_ex and 
> zend_execute_internal based profiling (tested with tideways_xhprof) in a 
> way that all Jitted functions are not called through those two hooks 
> anymore, and don't appear in profiling data anymore. Is that a correct 
> description? The number of parent=>child call entries drops from 88 to 
> 12 in my sample code when jit is activated.
> 
> Is that a desired side-effect?

Yes. This is, at least expected.
PHP profilers/debuggers may disable JIT and opcache for particular 
request, setting "opcache.enable=0" in RINIT.

In addition, JIT-ed functions now may be tracked by Linux perf (oprofile 
and Intel VTune).

$ perf record php -d opcache.huge_code_pages=0 -d opcache.jit_debug=0x10 
bench.php
$ perf report

Thanks. Dmitry.



> 
> 
> 
>         Thanks. Dmitry.
> 

Reply via email to