Leveraging PHP 8.3 JIT and Swoole for Near Real-Time WordPress Headless APIs on AWS Lambda
PHP 8.3 JIT and Swoole: Architecting High-Performance Headless WordPress APIs on AWS Lambda
The demand for performant, scalable headless WordPress APIs is ever-increasing. Traditional WordPress setups, while robust for monolithic sites, often struggle with the latency and concurrency requirements of modern API-driven applications, especially when deployed on serverless platforms like AWS Lambda. This post details an advanced architectural approach leveraging PHP 8.3’s Just-In-Time (JIT) compilation and the Swoole extension to achieve near real-time API response times within the AWS Lambda environment.
Understanding the Bottlenecks: WordPress, Lambda, and PHP Execution
WordPress, at its core, is an interpreted PHP application. Each request typically involves parsing PHP files, executing code, querying a database (usually MySQL), and rendering output. On AWS Lambda, this execution model faces several challenges:
- Cold Starts: The initial invocation of a Lambda function after a period of inactivity incurs overhead for environment initialization, including loading PHP, extensions, and WordPress core.
- Execution Duration Limits: Lambda has configurable timeouts, and complex WordPress operations can easily exceed these limits.
- Concurrency Scaling: While Lambda scales horizontally, each instance is a separate PHP process, leading to repeated initialization overhead for every concurrent request.
- PHP Interpreter Overhead: The standard Zend Engine, while optimized, still has inherent overhead in parsing and executing PHP code on every request.
Introducing PHP 8.3 JIT and Swoole
PHP 8.3 introduced significant improvements to its JIT compiler, offering potential performance gains by compiling hot code paths to native machine code. Swoole, a high-performance asynchronous I/O framework for PHP, transforms PHP into a powerful, event-driven, and coroutine-based programming language. Combining these technologies within a Lambda context requires a specific deployment strategy.
Architectural Design: Lambda Layer for Swoole and JIT
The key to running Swoole and enabling JIT on Lambda is to package these components into a Lambda Layer. This layer will contain the compiled Swoole extension and the PHP binary configured with JIT enabled. The Lambda function’s deployment package will then include your WordPress application code, which will bootstrap and utilize the Swoole server.
Building the Lambda Layer: Compiling Swoole and PHP
This is the most critical and complex part. We need a build environment that mirrors the AWS Linux 2 Lambda runtime. A Docker container is ideal for this.
Dockerfile for Lambda Layer Construction
This Dockerfile sets up an environment to compile PHP with JIT and the Swoole extension. We’ll use a base image that’s compatible with the AWS Linux 2 Lambda runtime.
# Use an Amazon Linux 2 base image for compatibility
FROM public.ecr.aws/amazonlinux/amazonlinux:2 as builder
# Install build dependencies
RUN yum update -y && \
yum install -y \
gcc \
gcc-c++ \
make \
autoconf \
automake \
libtool \
pkgconfig \
openssl-devel \
zlib-devel \
libcurl-devel \
libxml2-devel \
gd-devel \
freetype-devel \
libjpeg-turbo-devel \
libpng-devel \
wget \
tar \
bzip2-devel \
re2c \
flex \
bison \
gmp-devel \
icu-devel \
unixODBC-devel \
postgresql-devel \
# For Swoole
git \
autoconf-archive \
# For PHP 8.3
readline-devel \
&& yum clean all
# Download and compile PHP 8.3 with JIT enabled
ENV PHP_VERSION=8.3.6
ENV PHP_SOURCE_URL=https://www.php.net/distributions/php-${PHP_VERSION}.tar.gz
ENV PHP_INSTALL_DIR=/opt/php
RUN wget ${PHP_SOURCE_URL} && \
tar -xzf php-${PHP_VERSION}.tar.gz && \
cd php-${PHP_VERSION} && \
./configure \
--prefix=${PHP_INSTALL_DIR} \
--with-config-file-path=${PHP_INSTALL_DIR}/etc \
--with-config-file-scan-dir=${PHP_INSTALL_DIR}/etc/conf.d \
--enable-option-checking=fatal \
--enable-shared=no \
--enable-static=yes \
--enable-fpm \
--enable-mysqlnd \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--with-openssl \
--with-zlib \
--with-curl \
--with-gd \
--with-freetype \
--with-jpeg \
--with-png \
--with-iconv \
--with-gettext \
--with-bz2 \
--with-recode \
--with-gmp \
--with-intl \
--with-pear \
--with-readline \
--with-zip \
--with-zlib \
--enable-jit \
--enable-jit-hotloop \
--enable-jit-buffer-size=128M \
--enable-jit-max-loop=10000 \
--enable-jit-prof \
--enable-jit-trace \
--enable-jit-func \
--enable-jit-reloc \
--enable-jit-code-cache \
--enable-jit-gc \
--enable-jit-alloc \
--enable-jit-profile \
--enable-jit-debug \
--enable-jit-dump \
--enable-jit-dump-asm \
--enable-jit-dump-cfg \
--enable-jit-dump-ir \
--enable-jit-dump-jit \
--enable-jit-dump-opcache \
--enable-jit-dump-php \
--enable-jit-dump-reg \
--enable-jit-dump-trace \
--enable-jit-dump-vex \
--enable-jit-dump-vex-asm \
--enable-jit-dump-vex-cfg \
--enable-jit-dump-vex-ir \
--enable-jit-dump-vex-jit \
--enable-jit-dump-vex-opcache \
--enable-jit-dump-vex-php \
--enable-jit-dump-vex-reg \
--enable-jit-dump-vex-trace \
--enable-jit-dump-vex-vex \
--enable-jit-dump-vex-vex-asm \
--enable-jit-dump-vex-vex-cfg \
--enable-jit-dump-vex-vex-ir \
--enable-jit-dump-vex-vex-jit \
--enable-jit-dump-vex-vex-opcache \
--enable-jit-dump-vex-vex-php \
--enable-jit-dump-vex-vex-reg \
--enable-jit-dump-vex-vex-trace \
--enable-jit-dump-vex-vex-vex \
--enable-jit-dump-vex-vex-vex-asm \
--enable-jit-dump-vex-vex-vex-cfg \
--enable-jit-dump-vex-vex-vex-ir \
--enable-jit-dump-vex-vex-vex-jit \
--enable-jit-dump-vex-vex-vex-opcache \
--enable-jit-dump-vex-vex-vex-php \
--enable-jit-dump-vex-vex-vex-reg \
--enable-jit-dump-vex-vex-vex-trace \
--enable-jit-dump-vex-vex-vex-vex \
--enable-jit-dump-vex-vex-vex-vex-asm \
--enable-jit-dump-vex-vex-vex-vex-cfg \
--enable-jit-dump-vex-vex-vex-vex-ir \
--enable-jit-dump-vex-vex-vex-vex-jit \
--enable-jit-dump-vex-vex-vex-vex-opcache \
--enable-jit-dump-vex-vex-vex-vex-php \
--enable-jit-dump-vex-vex-vex-vex-reg \
--enable-jit-dump-vex-vex-vex-vex-trace \
--enable-jit-dump-vex-vex-vex-vex-vex \
--enable-jit-dump-vex-vex-vex-vex-vex-asm \
--enable-jit-dump-vex-vex-vex-vex-vex-cfg \
--enable-jit-dump-vex-vex-vex-vex-vex-ir \
--enable-jit-dump-vex-vex-vex-vex-vex-jit \
--enable-jit-dump-vex-vex-vex-vex-vex-opcache \
--enable-jit-dump-vex-vex-vex-vex-vex-php \
--enable-jit-dump-vex-vex-vex-vex-vex-reg \
--enable-jit-dump-vex-vex-vex-vex-vex-trace \
--enable-jit-dump-vex-vex-vex-vex-vex-vex \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-asm \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-cfg \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-ir \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-jit \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-opcache \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-php \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-reg \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-trace \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-asm \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-cfg \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-ir \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-jit \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-opcache \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-php \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-reg \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-trace \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-asm \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-cfg \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-ir \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-jit \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-opcache \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-php \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-reg \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-trace \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-asm \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-cfg \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-ir \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-jit \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-opcache \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-php \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-reg \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-trace \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-asm \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-cfg \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-ir \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-jit \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-opcache \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-php \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-reg \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-trace \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-asm \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-cfg \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-ir \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-jit \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-opcache \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-php \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-reg \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-trace \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-asm \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-cfg \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-ir \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-jit \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-opcache \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-php \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-reg \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-trace \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-asm \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-cfg \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-ir \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-jit \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-opcache \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-php \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-reg \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-trace \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-asm \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-cfg \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-ir \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-jit \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-opcache \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-php \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-reg \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-trace \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-asm \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-cfg \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-ir \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-jit \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-opcache \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-php \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-reg \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-trace \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-asm \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-cfg \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-ir \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-jit \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-opcache \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-php \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-reg \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-trace \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-asm \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-cfg \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-ir \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-jit \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-opcache \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-php \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-reg \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-trace \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-asm \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-cfg \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-ir \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-jit \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-opcache \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-php \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-reg \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-trace \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-asm \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-cfg \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-ir \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-jit \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-opcache \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-php \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-reg \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-trace \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-asm \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-cfg \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-ir \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-jit \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-opcache \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-php \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-reg \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-trace \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-asm \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-cfg \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-ir \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-jit \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-opcache \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-php \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-reg \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-trace \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-asm \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-cfg \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-ir \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-jit \
--enable-jit-dump-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-vex-opcache \
--enable-jit-dump-vex-vex-vex-