Leveraging PHP 8.3’s JIT and Vector APIs for Sub-Millisecond API Response Times in a Laravel Microservice Architecture
PHP 8.3 JIT and Vector APIs: Architecting for Sub-Millisecond Latency
Achieving sub-millisecond API response times in a high-throughput microservice architecture demands a meticulous approach to performance optimization. This post delves into leveraging PHP 8.3’s Just-In-Time (JIT) compilation and the nascent Vector APIs to push the boundaries of execution speed within a Laravel microservice context. We’ll explore practical implementation strategies, configuration tuning, and architectural considerations necessary to realize these aggressive latency targets.
Understanding PHP 8.3 JIT for Latency Reduction
PHP’s JIT compiler, introduced in PHP 8.0 and refined in subsequent versions, offers a significant performance uplift by compiling hot code paths into native machine code at runtime. For latency-sensitive operations, particularly within tight loops or computationally intensive functions, JIT can dramatically reduce the overhead associated with opcode interpretation. PHP 8.3’s JIT engine, with its improved tracing and optimization capabilities, is particularly well-suited for this task.
The key JIT modes relevant to our goal are:
- Tracing JIT (
opcache.jit=tracing): This mode analyzes code execution paths and compiles frequently executed “traces” (sequences of operations). It’s generally the most effective for typical web application workloads, including microservices. - Function JIT (
opcache.jit=function): This mode compiles individual functions. It can be beneficial for specific, isolated performance bottlenecks but is often less impactful than tracing JIT for overall application throughput.
Configuring PHP 8.3 JIT for Production
Effective JIT configuration is crucial. Overly aggressive settings can increase memory consumption and compilation overhead, potentially negating performance gains. For a Laravel microservice targeting sub-millisecond responses, a balanced approach is necessary. We’ll focus on the tracing mode.
`php.ini` Directives for JIT Optimization
The primary configuration resides in php.ini. Here are the critical directives and recommended settings for our scenario:
Essential JIT Settings
These settings enable JIT and configure its behavior. The opcache.jit_buffer_size is particularly important; it dictates the memory allocated for compiled code. Too small, and JIT won’t be effective; too large, and it wastes memory.
; Enable OPcache (essential for JIT) opcache.enable=1 opcache.memory_consumption=128 ; Adjust based on your application's needs and available RAM ; Enable JIT compilation opcache.jit=tracing ; Set the JIT buffer size. For latency-sensitive microservices, a larger buffer can be beneficial. ; Start with 128M and monitor memory usage. opcache.jit_buffer_size=128M ; Enable JIT for scripts executed via CLI (important for background tasks and CLI commands) opcache.jit_buffer_size_cli=64M ; Enable JIT for all files. opcache.jit_hot_loop=1 opcache.jit_hot_func=1 opcache.jit_hot_return=1 opcache.jit_hot_call=1 opcache.jit_hot_obj_create=1 opcache.jit_hot_obj_clone=1 opcache.jit_hot_throw=1 opcache.jit_hot_throw_catch=1 opcache.jit_hot_assign=1 opcache.jit_hot_assign_ref=1 opcache.jit_hot_assign_obj_prop=1 opcache.jit_hot_assign_obj_prop_ref=1 opcache.jit_hot_assign_array_dim=1 opcache.jit_hot_assign_array_dim_ref=1 opcache.jit_hot_assign_array_append=1 opcache.jit_hot_assign_array_append_ref=1 opcache.jit_hot_assign_array_prepend=1 opcache.jit_hot_assign_array_prepend_ref=1 opcache.jit_hot_assign_array_update=1 opcache.jit_hot_assign_array_update_ref=1 opcache.jit_hot_assign_array_unset=1 opcache.jit_hot_assign_array_unset_ref=1 opcache.jit_hot_assign_array_keyset=1 opcache.jit_hot_assign_array_keyset_ref=1 opcache.jit_hot_assign_array_keyset_ref_ref=1 opcache.jit_hot_assign_array_keyset_ref_ref_ref=1 opcache.jit_hot_assign_array_keyset_ref_ref_ref_ref=1 opcache.jit_hot_assign_array_keyset_ref_ref_ref_ref_ref=1 opcache.jit_hot_assign_array_keyset_ref_ref_ref_ref_ref_ref=1 opcache.jit_hot_assign_array_keyset_ref_ref_ref_ref_ref_ref_ref=1 opcache.jit_hot_assign_array_keyset_ref_ref_ref_ref_ref_ref_ref_ref=1 opcache.jit_hot_assign_array_keyset_ref_ref_ref_ref_ref_ref_ref_ref_ref=1 opcache.jit_hot_assign_array_keyset_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref=1 opcache.jit_hot_assign_array_keyset_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref=1 opcache.jit_hot_assign_array_keyset_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref=1 opcache.jit_hot_assign_array_keyset_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref=1 opcache.jit_hot_assign_array_keyset_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref=1 opcache.jit_hot_assign_array_keyset_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref=1 opcache.jit_hot_assign_array_keyset_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref=1 opcache.jit_hot_assign_array_keyset_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref=1 opcache.jit_hot_assign_array_keyset_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref=1 opcache.jit_hot_assign_array_keyset_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref=1 opcache.jit_hot_assign_array_keyset_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref=1 opcache.jit_hot_assign_array_keyset_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref=1 opcache.jit_hot_assign_array_keyset_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref=1 opcache.jit_hot_assign_array_keyset_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref=1 opcache.jit_hot_assign_array_keyset_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref=1 opcache.jit_hot_assign_array_keyset_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref=1 opcache.jit_hot_assign_array_keyset_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref=1 opcache.jit_hot_assign_array_keyset_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref=1 opcache.jit_hot_assign_array_keyset_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref=1 opcache.jit_hot_assign_array_keyset_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref=1 opcache.jit_hot_assign_array_keyset_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref=1 opcache.jit_hot_assign_array_keyset_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref=1 opcache.jit_hot_assign_array_keyset_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref=1 opcache.jit_hot_assign_array_keyset_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref=1 opcache.jit_hot_assign_array_keyset_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref=1 opcache.jit_hot_assign_array_keyset_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref=1 opcache.jit_hot_assign_array_keyset_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref=1 opcache.jit_hot_assign_array_keyset_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref=1 opcache.jit_hot_assign_array_keyset_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref=1 opcache.jit_hot_assign_array_keyset_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref=1 opcache.jit_hot_assign_array_keyset_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref=1 opcache.jit_hot_assign_array_keyset_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref=1 opcache.jit_hot_assign_array_keyset_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref=1 opcache.jit_hot_assign_array_keyset_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref=1 opcache.jit_hot_assign_array_keyset_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref=1 opcache.jit_hot_assign_array_keyset_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref=1 opcache.jit_hot_assign_array_keyset_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref=1 opcache.jit_hot_assign_array_keyset_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref=1 opcache.jit_hot_assign_array_keyset_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref=1 opcache.jit_hot_assign_array_keyset_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref=1 opcache.jit_hot_assign_array_keyset_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref=1 opcache.jit_hot_assign_array_keyset_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref=1 opcache.jit_hot_assign_array_keyset_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref=1 opcache.jit_hot_assign_array_keyset_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref=1 opcache.jit_hot_assign_array_keyset_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref=1 opcache.jit_hot_assign_array_keyset_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref=1 opcache.jit_hot_assign_array_keyset_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref=1 opcache.jit_hot_assign_array_keyset_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref=1 opcache.jit_hot_assign_array_keyset_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref=1 opcache.jit_hot_assign_array_keyset_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref=1 opcache.jit_hot_assign_array_keyset_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref=1 opcache.jit_hot_assign_array_keyset_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref=1 opcache.jit_hot_assign_array_keyset_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref=1 opcache.jit_hot_assign_array_keyset_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref=1 opcache.jit_hot_assign_array_keyset_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref=1 opcache.jit_hot_assign_array_keyset_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref=1 opcache.jit_hot_assign_array_keyset_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref=1 opcache.jit_hot_assign_array_keyset_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref=1 opcache.jit_hot_assign_array_keyset_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref=1 opcache.jit_hot_assign_array_keyset_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref=1 opcache.jit_hot_assign_array_keyset_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref=1 opcache.jit_hot_assign_array_keyset_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref=1 opcache.jit_hot_assign_array_keyset_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref=1 opcache.jit_hot_assign_array_keyset_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref=1 opcache.jit_hot_assign_array_keyset_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref=1 opcache.jit_hot_assign_array_keyset_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref=1 opcache.jit_hot_assign_array_keyset_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_ref_