{
    "schema_version": 1,
    "environment": {
        "generated_at": "2026-07-22T15:23:56+00:00",
        "php_version": "8.4.23",
        "php_sapi": "cli",
        "os": "Linux 4.18.0-553.85.1.el8_10.x86_64",
        "architecture": "x86_64",
        "cpu": "AMD EPYC-Rome Processor",
        "memory": "15.02 GiB host total",
        "opcache_cli": "0",
        "memory_limit": "1024M",
        "extensions": [
            "json",
            "openssl",
            "zlib",
            "mbstring",
            "pdo_sqlite"
        ],
        "timezone": "UTC",
        "clock": "hrtime(true)",
        "rounds": 7
    },
    "checksum": 5658699,
    "studies": {
        "json-encoding-layout": {
            "slug": "json-encoding-layout",
            "iterations_per_sample": 70,
            "rounds": 7,
            "winner": "Compact JSON",
            "slowest": "Pretty JSON",
            "spread_percent": 26.94,
            "variants": {
                "Compact JSON": {
                    "median_ns_per_op": 225359.1,
                    "p25_ns_per_op": 225062.96,
                    "p75_ns_per_op": 232093.97,
                    "ops_per_second": 4437.36,
                    "samples_ns_per_op": [
                        225359.1,
                        223897.07,
                        224899.09,
                        225226.84,
                        228546.96,
                        235640.99,
                        238648.79
                    ],
                    "extra": {
                        "output_bytes": 67457
                    }
                },
                "Pretty JSON": {
                    "median_ns_per_op": 286060.16,
                    "p25_ns_per_op": 278639.71,
                    "p75_ns_per_op": 289801.03,
                    "ops_per_second": 3495.77,
                    "samples_ns_per_op": [
                        278077.01,
                        286060.16,
                        277745.39,
                        279202.4,
                        302325.83,
                        287855.67,
                        291746.39
                    ],
                    "extra": {
                        "output_bytes": 135058
                    }
                }
            }
        },
        "json-decoding-shape": {
            "slug": "json-decoding-shape",
            "iterations_per_sample": 90,
            "rounds": 7,
            "winner": "Associative arrays",
            "slowest": "Objects",
            "spread_percent": 6.8,
            "variants": {
                "Associative arrays": {
                    "median_ns_per_op": 562064.51,
                    "p25_ns_per_op": 544184.27,
                    "p75_ns_per_op": 576986.77,
                    "ops_per_second": 1779.16,
                    "samples_ns_per_op": [
                        573123.73,
                        541697.7,
                        634369.14,
                        524264.28,
                        580849.81,
                        562064.51,
                        546670.83
                    ],
                    "extra": []
                },
                "Objects": {
                    "median_ns_per_op": 600277.53,
                    "p25_ns_per_op": 584358.46,
                    "p75_ns_per_op": 604448.87,
                    "ops_per_second": 1665.9,
                    "samples_ns_per_op": [
                        600277.53,
                        609928.89,
                        570830.31,
                        602806.4,
                        576520.9,
                        606091.33,
                        592196.01
                    ],
                    "extra": []
                }
            }
        },
        "gzip-compression-levels": {
            "slug": "gzip-compression-levels",
            "iterations_per_sample": 45,
            "rounds": 7,
            "winner": "Level 1",
            "slowest": "Level 9",
            "spread_percent": 554.18,
            "variants": {
                "Level 1": {
                    "median_ns_per_op": 380097.22,
                    "p25_ns_per_op": 376600.09,
                    "p75_ns_per_op": 394073.93,
                    "ops_per_second": 2630.91,
                    "samples_ns_per_op": [
                        402154,
                        548618.29,
                        379149.42,
                        380097.22,
                        374050.76,
                        373648.2,
                        385993.87
                    ],
                    "extra": {
                        "output_bytes": 9532
                    }
                },
                "Level 6": {
                    "median_ns_per_op": 927816.67,
                    "p25_ns_per_op": 914775.28,
                    "p75_ns_per_op": 933675.01,
                    "ops_per_second": 1077.8,
                    "samples_ns_per_op": [
                        962830.24,
                        918766.78,
                        930970.82,
                        936379.2,
                        906446.73,
                        910783.78,
                        927816.67
                    ],
                    "extra": {
                        "output_bytes": 6784
                    }
                },
                "Level 9": {
                    "median_ns_per_op": 2486535.93,
                    "p25_ns_per_op": 2461003.2,
                    "p75_ns_per_op": 2611945.68,
                    "ops_per_second": 402.17,
                    "samples_ns_per_op": [
                        2710527.64,
                        2839077.18,
                        2463233.71,
                        2486535.93,
                        2450056.07,
                        2458772.69,
                        2513363.71
                    ],
                    "extra": {
                        "output_bytes": 6369
                    }
                }
            }
        },
        "hash-throughput": {
            "slug": "hash-throughput",
            "iterations_per_sample": 110,
            "rounds": 7,
            "winner": "SHA-256",
            "slowest": "SHA-512",
            "spread_percent": 375.06,
            "variants": {
                "SHA-256": {
                    "median_ns_per_op": 75545.19,
                    "p25_ns_per_op": 75391.82,
                    "p75_ns_per_op": 75926.82,
                    "ops_per_second": 13237.11,
                    "samples_ns_per_op": [
                        76179.3,
                        75545.19,
                        75177.42,
                        75674.35,
                        75490.45,
                        76296.71,
                        75293.18
                    ],
                    "extra": []
                },
                "SHA3-256": {
                    "median_ns_per_op": 315705.03,
                    "p25_ns_per_op": 313688.25,
                    "p75_ns_per_op": 316226.88,
                    "ops_per_second": 3167.51,
                    "samples_ns_per_op": [
                        313199.78,
                        316225.11,
                        318634.8,
                        315705.03,
                        307557.36,
                        314176.71,
                        316228.65
                    ],
                    "extra": []
                },
                "SHA-512": {
                    "median_ns_per_op": 358885.88,
                    "p25_ns_per_op": 354277.36,
                    "p75_ns_per_op": 360516.44,
                    "ops_per_second": 2786.4,
                    "samples_ns_per_op": [
                        358885.88,
                        359041.99,
                        349069.8,
                        361990.89,
                        362268.24,
                        355806.28,
                        352748.45
                    ],
                    "extra": []
                }
            }
        },
        "string-assembly": {
            "slug": "string-assembly",
            "iterations_per_sample": 150,
            "rounds": 7,
            "winner": "Incremental concatenation",
            "slowest": "Array plus implode",
            "spread_percent": 2.28,
            "variants": {
                "Incremental concatenation": {
                    "median_ns_per_op": 46591.32,
                    "p25_ns_per_op": 46226.81,
                    "p75_ns_per_op": 49748.9,
                    "ops_per_second": 21463.23,
                    "samples_ns_per_op": [
                        46191.91,
                        46591.32,
                        46050.86,
                        46261.71,
                        49037.79,
                        50460,
                        50554.91
                    ],
                    "extra": []
                },
                "Array plus implode": {
                    "median_ns_per_op": 47655.13,
                    "p25_ns_per_op": 44826.78,
                    "p75_ns_per_op": 48340.15,
                    "ops_per_second": 20984.1,
                    "samples_ns_per_op": [
                        48410.29,
                        44713.14,
                        44940.42,
                        44611.08,
                        47655.13,
                        48270.02,
                        54353.45
                    ],
                    "extra": []
                }
            }
        },
        "membership-lookups": {
            "slug": "membership-lookups",
            "iterations_per_sample": 35,
            "rounds": 7,
            "winner": "Associative map lookup",
            "slowest": "Linear array_search",
            "spread_percent": 43350.46,
            "variants": {
                "Associative map lookup": {
                    "median_ns_per_op": 38364.94,
                    "p25_ns_per_op": 38221.8,
                    "p75_ns_per_op": 39246.44,
                    "ops_per_second": 26065.46,
                    "samples_ns_per_op": [
                        52423.31,
                        38364.94,
                        38086.97,
                        37689.37,
                        38356.63,
                        38978.37,
                        39514.51
                    ],
                    "extra": []
                },
                "Linear array_search": {
                    "median_ns_per_op": 16669744.66,
                    "p25_ns_per_op": 14044121.07,
                    "p75_ns_per_op": 16917337.34,
                    "ops_per_second": 59.99,
                    "samples_ns_per_op": [
                        13976812.17,
                        13828272.29,
                        16861099.57,
                        16973575.11,
                        16669744.66,
                        14111429.97,
                        17175381.43
                    ],
                    "extra": []
                }
            }
        },
        "deduplication-strategies": {
            "slug": "deduplication-strategies",
            "iterations_per_sample": 35,
            "rounds": 7,
            "winner": "array_unique",
            "slowest": "Keyed set",
            "spread_percent": 139.92,
            "variants": {
                "array_unique": {
                    "median_ns_per_op": 48937.66,
                    "p25_ns_per_op": 48825.59,
                    "p75_ns_per_op": 51770.81,
                    "ops_per_second": 20434.16,
                    "samples_ns_per_op": [
                        48937.66,
                        50472.23,
                        53069.4,
                        48648.54,
                        48836.31,
                        48814.86,
                        63079.91
                    ],
                    "extra": []
                },
                "Keyed set": {
                    "median_ns_per_op": 117410.29,
                    "p25_ns_per_op": 116719.86,
                    "p75_ns_per_op": 118568.74,
                    "ops_per_second": 8517.14,
                    "samples_ns_per_op": [
                        118270.17,
                        116543.23,
                        117410.29,
                        116896.49,
                        118867.31,
                        124850.29,
                        115549.4
                    ],
                    "extra": []
                }
            }
        },
        "date-parsing": {
            "slug": "date-parsing",
            "iterations_per_sample": 20,
            "rounds": 7,
            "winner": "strtotime",
            "slowest": "DateTimeImmutable",
            "spread_percent": 15.69,
            "variants": {
                "strtotime": {
                    "median_ns_per_op": 880153.55,
                    "p25_ns_per_op": 873586.45,
                    "p75_ns_per_op": 884418.28,
                    "ops_per_second": 1136.17,
                    "samples_ns_per_op": [
                        884547.25,
                        880153.55,
                        875973.7,
                        898564.1,
                        884289.3,
                        871199.2,
                        870301.5
                    ],
                    "extra": []
                },
                "DateTimeImmutable": {
                    "median_ns_per_op": 1018260.55,
                    "p25_ns_per_op": 1015105.35,
                    "p75_ns_per_op": 1047175.88,
                    "ops_per_second": 982.07,
                    "samples_ns_per_op": [
                        1018260.55,
                        1069752.8,
                        1007728.75,
                        1052809,
                        1016579.4,
                        1013631.3,
                        1041542.75
                    ],
                    "extra": []
                }
            }
        },
        "serialization-roundtrip": {
            "slug": "serialization-roundtrip",
            "iterations_per_sample": 55,
            "rounds": 7,
            "winner": "PHP serialize round trip",
            "slowest": "JSON round trip",
            "spread_percent": 76.58,
            "variants": {
                "PHP serialize round trip": {
                    "median_ns_per_op": 425054.38,
                    "p25_ns_per_op": 420631.06,
                    "p75_ns_per_op": 429561.47,
                    "ops_per_second": 2352.64,
                    "samples_ns_per_op": [
                        420989.09,
                        528907.67,
                        428925.09,
                        420273.04,
                        430197.85,
                        413977.75,
                        425054.38
                    ],
                    "extra": {
                        "output_bytes": 106020
                    }
                },
                "JSON round trip": {
                    "median_ns_per_op": 750561,
                    "p25_ns_per_op": 743848.93,
                    "p75_ns_per_op": 861242.12,
                    "ops_per_second": 1332.34,
                    "samples_ns_per_op": [
                        752757.49,
                        1069925.93,
                        750561,
                        969726.75,
                        745351.02,
                        741937.18,
                        742346.84
                    ],
                    "extra": {
                        "output_bytes": 67457
                    }
                }
            }
        },
        "query-string-generation": {
            "slug": "query-string-generation",
            "iterations_per_sample": 600,
            "rounds": 7,
            "winner": "RFC 3986 encoding",
            "slowest": "RFC 1738 default",
            "spread_percent": 2.78,
            "variants": {
                "RFC 3986 encoding": {
                    "median_ns_per_op": 1045.78,
                    "p25_ns_per_op": 1041.18,
                    "p75_ns_per_op": 1111.98,
                    "ops_per_second": 956222.54,
                    "samples_ns_per_op": [
                        1038.95,
                        1043.41,
                        1030.89,
                        1232.2,
                        1053.01,
                        1045.78,
                        1170.95
                    ],
                    "extra": {
                        "output_bytes": 240
                    }
                },
                "RFC 1738 default": {
                    "median_ns_per_op": 1074.84,
                    "p25_ns_per_op": 1045.81,
                    "p75_ns_per_op": 1090.21,
                    "ops_per_second": 930373.92,
                    "samples_ns_per_op": [
                        1079.76,
                        1067.6,
                        1021.67,
                        1124.08,
                        1100.67,
                        1024.02,
                        1074.84
                    ],
                    "extra": {
                        "output_bytes": 238
                    }
                }
            }
        },
        "html-escaping": {
            "slug": "html-escaping",
            "iterations_per_sample": 450,
            "rounds": 7,
            "winner": "ENT_NOQUOTES + substitute",
            "slowest": "ENT_QUOTES + substitute",
            "spread_percent": 3.68,
            "variants": {
                "ENT_NOQUOTES + substitute": {
                    "median_ns_per_op": 23983.1,
                    "p25_ns_per_op": 23483.84,
                    "p75_ns_per_op": 24222.77,
                    "ops_per_second": 41696.02,
                    "samples_ns_per_op": [
                        25560.76,
                        23490.18,
                        23477.51,
                        23175,
                        23983.1,
                        24184.63,
                        24260.92
                    ],
                    "extra": {
                        "output_bytes": 8240
                    }
                },
                "ENT_QUOTES + substitute": {
                    "median_ns_per_op": 24865.72,
                    "p25_ns_per_op": 24681.57,
                    "p75_ns_per_op": 24922.52,
                    "ops_per_second": 40216.02,
                    "samples_ns_per_op": [
                        27104.17,
                        24924.74,
                        24075.99,
                        24534.67,
                        24920.31,
                        24828.47,
                        24865.72
                    ],
                    "extra": {
                        "output_bytes": 9840
                    }
                }
            }
        },
        "file-read-strategy": {
            "slug": "file-read-strategy",
            "iterations_per_sample": 18,
            "rounds": 7,
            "winner": "64 KiB chunked fread",
            "slowest": "file_get_contents",
            "spread_percent": 239.89,
            "variants": {
                "64 KiB chunked fread": {
                    "median_ns_per_op": 206067.22,
                    "p25_ns_per_op": 203628.36,
                    "p75_ns_per_op": 209555.61,
                    "ops_per_second": 4852.79,
                    "samples_ns_per_op": [
                        211739.44,
                        215255.5,
                        203112.11,
                        206067.22,
                        204144.61,
                        195052.56,
                        207371.78
                    ],
                    "extra": {
                        "input_bytes": 2097152
                    }
                },
                "file_get_contents": {
                    "median_ns_per_op": 700396.33,
                    "p25_ns_per_op": 666884.53,
                    "p75_ns_per_op": 733855.67,
                    "ops_per_second": 1427.76,
                    "samples_ns_per_op": [
                        700396.33,
                        713454.28,
                        756617.06,
                        660037.22,
                        673731.83,
                        754257.06,
                        641217.44
                    ],
                    "extra": {
                        "input_bytes": 2097152
                    }
                }
            }
        },
        "file-integrity-hashing": {
            "slug": "file-integrity-hashing",
            "iterations_per_sample": 14,
            "rounds": 7,
            "winner": "hash_file SHA-256",
            "slowest": "Read then hash SHA-256",
            "spread_percent": 30.62,
            "variants": {
                "hash_file SHA-256": {
                    "median_ns_per_op": 1749501.07,
                    "p25_ns_per_op": 1726130.75,
                    "p75_ns_per_op": 1766130.57,
                    "ops_per_second": 571.59,
                    "samples_ns_per_op": [
                        1749501.07,
                        1774581.07,
                        1745121.36,
                        1834807.79,
                        1757680.07,
                        1707140.14,
                        1702787.64
                    ],
                    "extra": []
                },
                "Read then hash SHA-256": {
                    "median_ns_per_op": 2285194.64,
                    "p25_ns_per_op": 2275567.57,
                    "p75_ns_per_op": 2357133.43,
                    "ops_per_second": 437.6,
                    "samples_ns_per_op": [
                        2285194.64,
                        2327846.29,
                        2386420.57,
                        2597227.29,
                        2280928.71,
                        2270206.43,
                        2244755.93
                    ],
                    "extra": []
                }
            }
        },
        "numeric-aggregation": {
            "slug": "numeric-aggregation",
            "iterations_per_sample": 180,
            "rounds": 7,
            "winner": "array_sum",
            "slowest": "foreach accumulator",
            "spread_percent": 356.25,
            "variants": {
                "array_sum": {
                    "median_ns_per_op": 9471.46,
                    "p25_ns_per_op": 9458.19,
                    "p75_ns_per_op": 9899.55,
                    "ops_per_second": 105580.39,
                    "samples_ns_per_op": [
                        9471.46,
                        9456.16,
                        9434.33,
                        9749.21,
                        9460.22,
                        10049.88,
                        10206.23
                    ],
                    "extra": []
                },
                "foreach accumulator": {
                    "median_ns_per_op": 43213.3,
                    "p25_ns_per_op": 41559.52,
                    "p75_ns_per_op": 53404.72,
                    "ops_per_second": 23141.02,
                    "samples_ns_per_op": [
                        53594.58,
                        55233.49,
                        53214.87,
                        40591.59,
                        41166.89,
                        43213.3,
                        41952.15
                    ],
                    "extra": []
                }
            }
        },
        "atomic-file-publishing": {
            "slug": "atomic-file-publishing",
            "iterations_per_sample": 35,
            "rounds": 7,
            "winner": "Temporary file + rename",
            "slowest": "Direct overwrite",
            "spread_percent": 43.63,
            "variants": {
                "Temporary file + rename": {
                    "median_ns_per_op": 168694.94,
                    "p25_ns_per_op": 155252.24,
                    "p75_ns_per_op": 177618.13,
                    "ops_per_second": 5927.86,
                    "samples_ns_per_op": [
                        158077.83,
                        152426.66,
                        178325.63,
                        176910.63,
                        181928.09,
                        140683.17,
                        168694.94
                    ],
                    "extra": []
                },
                "Direct overwrite": {
                    "median_ns_per_op": 242304.66,
                    "p25_ns_per_op": 232811.11,
                    "p75_ns_per_op": 248449.07,
                    "ops_per_second": 4127.04,
                    "samples_ns_per_op": [
                        245128.26,
                        242304.66,
                        234313.09,
                        265150.43,
                        251769.89,
                        207609.46,
                        231309.14
                    ],
                    "extra": []
                }
            }
        },
        "random-token-encoding": {
            "slug": "random-token-encoding",
            "iterations_per_sample": 1100,
            "rounds": 7,
            "winner": "Hex token",
            "slowest": "Base64url token",
            "spread_percent": 18.43,
            "variants": {
                "Hex token": {
                    "median_ns_per_op": 539.95,
                    "p25_ns_per_op": 523.74,
                    "p75_ns_per_op": 564.34,
                    "ops_per_second": 1852017.1,
                    "samples_ns_per_op": [
                        570.87,
                        557.8,
                        539.95,
                        530.12,
                        517.36,
                        505.67,
                        614.22
                    ],
                    "extra": {
                        "output_bytes": 48
                    }
                },
                "Base64url token": {
                    "median_ns_per_op": 639.45,
                    "p25_ns_per_op": 635.92,
                    "p75_ns_per_op": 667.93,
                    "ops_per_second": 1563852.82,
                    "samples_ns_per_op": [
                        682.21,
                        739.23,
                        632.4,
                        628.45,
                        639.45,
                        639.45,
                        653.65
                    ],
                    "extra": {
                        "output_bytes": 32
                    }
                }
            }
        },
        "csv-vs-jsonl-parsing": {
            "slug": "csv-vs-jsonl-parsing",
            "iterations_per_sample": 40,
            "rounds": 7,
            "winner": "JSON Lines rows",
            "slowest": "CSV rows",
            "spread_percent": 152.06,
            "variants": {
                "JSON Lines rows": {
                    "median_ns_per_op": 226005.6,
                    "p25_ns_per_op": 225217.49,
                    "p75_ns_per_op": 228155.26,
                    "ops_per_second": 4424.67,
                    "samples_ns_per_op": [
                        226048.18,
                        226005.6,
                        274274.3,
                        230262.35,
                        225346.63,
                        225088.35,
                        219953.98
                    ],
                    "extra": {
                        "input_bytes": 21802
                    }
                },
                "CSV rows": {
                    "median_ns_per_op": 569660.48,
                    "p25_ns_per_op": 568262.63,
                    "p75_ns_per_op": 592052.69,
                    "ops_per_second": 1755.43,
                    "samples_ns_per_op": [
                        596483.38,
                        568312.23,
                        568213.03,
                        569660.48,
                        567116.43,
                        587622,
                        605817.15
                    ],
                    "extra": {
                        "input_bytes": 6092
                    }
                }
            }
        }
    }
}