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. >