UserCache\Cache Performance Report

Generated at 2026-07-15T04:32:18+00:00. Times are in microseconds; lower is faster.

CLI repeated read28/28 UserCache wins
UserCache
1.00x
APCu/igbinary
0.11x
APCu/php
0.07x
CLI store0/28 UserCache wins
UserCache
1.00x
APCu/igbinary
2.12x
APCu/php
1.78x
FPM one fetch/request (APCu serializer=php)28/28 UserCache wins
UserCache
1.00x
APCu/php
0.16x
FPM one fetch/request (APCu serializer=igbinary)28/28 UserCache wins
UserCache
1.00x
APCu/igbinary
0.25x
FPM hot read (APCu serializer=php)26/26 UserCache wins
UserCache
1.00x
APCu/php
0.05x
FPM hot read (APCu serializer=igbinary)26/26 UserCache wins
UserCache
1.00x
APCu/igbinary
0.09x

Environment

PHP8.6.0-dev (cli)
Thread SafetyNTS
Binary/workspaces/php-src/sapi/cli/php
SystemLinux b7b55aa64c52 7.0.11-orbstack-00360-gc9bc4d96ac70 #1 SMP PREEMPT Thu Jun 4 16:40:25 UTC 2026 aarch64
user_cache.shm_size128M
Loaded extensionsapcu, Core, ctype, date, dom, fileinfo, filter, hash, iconv, igbinary, json, lexbor, libxml, pcntl, pcre, PDO, pdo_sqlite, Phar, posix, random, Reflection, session, SimpleXML, SPL, sqlite3, standard, tokenizer, uri, user_cache, xml, xmlreader, xmlwriter, Zend OPcache

CLI Repeated Read

WorkloadUserCacheAPCu/phpAPCu/igbinaryFaster/UserCache
constant_array0.150 usmean 0.1582.288 usmean 2.3151.750 usmean 1.7031.00x (UserCache)
route_table_read0.265 usmean 0.246178.401 usmean 178.79258.700 usmean 58.6301.00x (UserCache)
large_array0.170 usmean 0.16097.574 usmean 97.47049.568 usmean 49.5871.00x (UserCache)
large_string0.104 usmean 0.1064.279 usmean 4.2965.168 usmean 5.1221.00x (UserCache)
large_object_graph0.178 usmean 0.18197.809 usmean 99.10851.346 usmean 51.8611.00x (UserCache)
metadata_object_read0.261 usmean 0.274185.098 usmean 184.87773.001 usmean 72.6021.00x (UserCache)
metadata_object_fetch_mutate0.345 usmean 0.347184.780 usmean 185.71771.004 usmean 71.7371.00x (UserCache)
sleep_wakeup_object0.313 usmean 0.2869.587 usmean 9.6054.988 usmean 4.9971.00x (UserCache)
serialize_magic_entity0.353 usmean 0.3523.913 usmean 3.9682.878 usmean 2.8991.00x (UserCache)
unserialize_only_entity0.416 usmean 0.4344.010 usmean 3.9813.040 usmean 3.0551.00x (UserCache)
sleep_wakeup_entity_collection8.499 usmean 8.53055.379 usmean 55.28932.409 usmean 32.3521.00x (UserCache)
sleep_wakeup_large_dataset0.223 usmean 0.24193.968 usmean 93.96248.815 usmean 49.3261.00x (UserCache)
recursive_reference_graph9.495 usmean 9.51936.163 usmean 36.33830.542 usmean 30.0011.00x (UserCache)
mixed_serialization_payload0.504 usmean 0.50516.422 usmean 16.46410.724 usmean 10.7271.00x (UserCache)
product_listing_view_model5.904 usmean 5.88165.354 usmean 65.87939.248 usmean 39.2591.00x (UserCache)
multi_key_config_read0.192 usmean 0.1929.091 usmean 9.0935.349 usmean 5.3521.00x (UserCache)
safe_direct_object0.537 usmean 0.5832.604 usmean 2.6232.507 usmean 2.4891.00x (UserCache)
spl_collection_object0.776 usmean 0.77520.834 usmean 20.9507.469 usmean 7.4511.00x (UserCache)
spl_linked_collection_object1.699 usmean 1.74420.278 usmean 20.5527.019 usmean 7.0371.00x (UserCache)
spl_heap_object1.465 usmean 1.45331.600 usmean 32.03012.805 usmean 12.8671.00x (UserCache)
carbon_datetime_object175.941 usmean 174.151197.982 usmean 200.696187.117 usmean 189.8981.00x (UserCache)
carbon_model_object174.545 usmean 174.819217.264 usmean 217.625194.251 usmean 194.1571.00x (UserCache)
raw_datetime_object9.748 usmean 9.816101.927 usmean 102.65589.492 usmean 89.4711.00x (UserCache)
raw_model_object7.791 usmean 7.825109.900 usmean 110.37592.075 usmean 92.6351.00x (UserCache)
serialized_cycle_object0.199 usmean 0.2020.446 usmean 0.4680.446 usmean 0.4881.00x (UserCache)
reference_assignment_object0.173 usmean 0.1730.363 usmean 0.3810.443 usmean 0.4331.00x (UserCache)
cycle_assignment_object0.178 usmean 0.1850.465 usmean 0.4860.511 usmean 0.5021.00x (UserCache)
nested_array_assignment0.164 usmean 0.1649.215 usmean 9.2336.661 usmean 6.7371.00x (UserCache)

CLI Store

WorkloadUserCacheAPCu/phpAPCu/igbinaryFaster/UserCache
constant_arraystore trade-off note2.409 usmean 2.5421.571 usmean 1.5720.952 usmean 1.0252.53x (APCu/igbinary)
route_table_readstore trade-off note110.129 usmean 110.08797.106 usmean 95.91377.789 usmean 77.8701.42x (APCu/igbinary)
large_arraystore trade-off note82.087 usmean 82.51755.363 usmean 55.16547.946 usmean 48.0191.71x (APCu/igbinary)
large_stringstore trade-off note4.042 usmean 4.0263.817 usmean 3.8484.041 usmean 4.0761.06x (APCu/php)
large_object_graphstore trade-off note117.106 usmean 118.98657.215 usmean 56.71948.474 usmean 48.5402.42x (APCu/igbinary)
metadata_object_readstore trade-off note182.026 usmean 182.444103.037 usmean 102.75087.857 usmean 87.7422.07x (APCu/igbinary)
metadata_object_fetch_mutatestore trade-off note187.574 usmean 188.098105.072 usmean 105.03086.652 usmean 86.8772.16x (APCu/igbinary)
sleep_wakeup_objectstore trade-off note10.751 usmean 10.9335.878 usmean 5.8864.739 usmean 4.8542.27x (APCu/igbinary)
serialize_magic_entitystore trade-off note6.114 usmean 6.1652.452 usmean 2.3892.377 usmean 2.3792.57x (APCu/igbinary)
unserialize_only_entitystore trade-off note5.986 usmean 5.9942.138 usmean 2.1482.292 usmean 2.4112.80x (APCu/php)
sleep_wakeup_entity_collectionstore trade-off note101.984 usmean 102.15133.080 usmean 32.66625.304 usmean 25.3724.03x (APCu/igbinary)
sleep_wakeup_large_datasetstore trade-off note117.454 usmean 117.80456.451 usmean 56.62448.522 usmean 48.4012.42x (APCu/igbinary)
recursive_reference_graphstore trade-off note44.041 usmean 44.07621.945 usmean 21.85518.553 usmean 18.3902.37x (APCu/igbinary)
mixed_serialization_payloadstore trade-off note25.369 usmean 25.3169.288 usmean 9.7669.607 usmean 9.9862.73x (APCu/php)
product_listing_view_modelstore trade-off note72.566 usmean 73.92325.443 usmean 25.78325.117 usmean 25.1222.89x (APCu/igbinary)
multi_key_config_readstore trade-off note9.058 usmean 9.0835.014 usmean 5.2454.909 usmean 4.7801.85x (APCu/igbinary)
safe_direct_objectstore trade-off note2.273 usmean 2.3191.319 usmean 1.3251.454 usmean 1.4581.72x (APCu/php)
spl_collection_objectstore trade-off note18.716 usmean 18.68711.876 usmean 11.9865.524 usmean 5.5233.39x (APCu/igbinary)
spl_linked_collection_objectstore trade-off note16.726 usmean 16.70411.958 usmean 11.9294.939 usmean 4.9843.39x (APCu/igbinary)
spl_heap_objectstore trade-off note32.140 usmean 31.80419.989 usmean 20.09911.961 usmean 12.0262.69x (APCu/igbinary)
carbon_datetime_objectstore trade-off note432.810 usmean 432.119351.480 usmean 350.404344.502 usmean 341.8451.26x (APCu/igbinary)
carbon_model_objectstore trade-off note473.681 usmean 471.870382.077 usmean 383.724373.511 usmean 380.7881.27x (APCu/igbinary)
raw_datetime_objectstore trade-off note89.758 usmean 89.33452.647 usmean 52.80551.381 usmean 51.2871.75x (APCu/igbinary)
raw_model_objectstore trade-off note87.507 usmean 87.63854.877 usmean 54.22053.436 usmean 53.6181.64x (APCu/igbinary)
serialized_cycle_objectstore trade-off note0.602 usmean 0.5980.358 usmean 0.3580.342 usmean 0.3431.76x (APCu/igbinary)
reference_assignment_objectstore trade-off note0.540 usmean 0.5800.302 usmean 0.3020.330 usmean 0.3301.79x (APCu/php)
cycle_assignment_objectstore trade-off note0.606 usmean 0.6070.321 usmean 0.3210.331 usmean 0.3541.89x (APCu/php)
nested_array_assignmentstore trade-off note10.903 usmean 10.9895.030 usmean 5.2875.872 usmean 6.0642.17x (APCu/php)

FPM One Fetch Per Request (APCu serializer=php)

WorkloadUserCacheAPCu/phpFaster/UserCacheWorkers
constant_array1.896 usmean 2.519p25-p75 1.417-3.0524.792 usmean 5.513p25-p75 4.125-6.5631.00x (UserCache)5
route_table_read1.625 usmean 2.563p25-p75 1.417-3.448241.251 usmean 247.006p25-p75 228.698-257.5521.00x (UserCache)5
large_array1.667 usmean 2.341p25-p75 1.375-2.969139.604 usmean 143.575p25-p75 126.645-156.9801.00x (UserCache)5
large_string1.625 usmean 2.151p25-p75 1.334-2.6886.667 usmean 7.134p25-p75 6.084-7.9271.00x (UserCache)5
large_object_graph2.667 usmean 3.339p25-p75 1.865-4.000139.541 usmean 141.968p25-p75 130.135-151.1141.00x (UserCache)5
metadata_object_read3.437 usmean 4.217p25-p75 2.542-5.750280.229 usmean 290.820p25-p75 251.542-306.2191.00x (UserCache)5
metadata_object_fetch_mutate4.500 usmean 5.539p25-p75 3.292-6.896280.125 usmean 288.033p25-p75 251.781-316.5411.00x (UserCache)5
sleep_wakeup_object2.958 usmean 3.553p25-p75 2.125-4.41617.542 usmean 18.933p25-p75 15.375-20.1461.00x (UserCache)5
serialize_magic_entity2.750 usmean 3.252p25-p75 2.042-4.0837.417 usmean 8.304p25-p75 6.500-8.7811.00x (UserCache)5
unserialize_only_entity3.291 usmean 3.789p25-p75 2.458-4.5418.313 usmean 9.730p25-p75 7.229-9.9161.00x (UserCache)5
sleep_wakeup_entity_collection12.667 usmean 15.007p25-p75 11.167-15.95891.625 usmean 95.896p25-p75 85.667-100.9371.00x (UserCache)5
sleep_wakeup_large_dataset2.750 usmean 3.454p25-p75 2.000-4.344148.000 usmean 149.932p25-p75 133.823-167.8441.00x (UserCache)5
recursive_reference_graph12.792 usmean 13.772p25-p75 10.875-14.60555.376 usmean 57.515p25-p75 49.615-61.5941.00x (UserCache)5
mixed_serialization_payload3.646 usmean 4.251p25-p75 2.750-5.09429.667 usmean 31.114p25-p75 26.187-33.5001.00x (UserCache)5
product_listing_view_model18.438 usmean 20.487p25-p75 15.667-22.70899.834 usmean 105.848p25-p75 90.594-112.3861.00x (UserCache)5
multi_key_config_read2.063 usmean 2.572p25-p75 1.615-3.05215.896 usmean 16.815p25-p75 14.209-17.7911.00x (UserCache)5
safe_direct_object6.083 usmean 7.307p25-p75 4.833-8.80212.021 usmean 14.331p25-p75 9.292-16.7711.00x (UserCache)5
spl_collection_object4.438 usmean 5.371p25-p75 3.406-6.37538.896 usmean 40.608p25-p75 36.375-42.6981.00x (UserCache)5
spl_linked_collection_object4.750 usmean 6.029p25-p75 3.833-6.77138.334 usmean 39.699p25-p75 35.032-41.5311.00x (UserCache)5
spl_heap_object5.084 usmean 5.935p25-p75 4.000-7.38655.104 usmean 57.168p25-p75 49.542-62.4591.00x (UserCache)5
carbon_datetime_object266.271 usmean 299.571p25-p75 243.177-332.302326.105 usmean 350.808p25-p75 279.010-371.6461.00x (UserCache)5
carbon_model_object272.229 usmean 311.869p25-p75 245.365-337.718328.396 usmean 372.865p25-p75 294.834-404.4691.00x (UserCache)5
raw_datetime_object23.438 usmean 26.163p25-p75 19.781-27.927135.188 usmean 142.597p25-p75 113.479-150.9171.00x (UserCache)5
raw_model_object21.147 usmean 24.441p25-p75 17.948-25.459144.771 usmean 157.101p25-p75 125.083-164.8961.00x (UserCache)5
serialized_cycle_object2.500 usmean 3.048p25-p75 1.865-3.6253.083 usmean 4.041p25-p75 2.448-4.7191.00x (UserCache)5
reference_assignment_object2.375 usmean 3.132p25-p75 1.875-3.7302.896 usmean 3.347p25-p75 2.281-3.7711.00x (UserCache)5
cycle_assignment_object2.375 usmean 3.030p25-p75 1.834-3.6773.000 usmean 3.375p25-p75 2.282-4.1361.00x (UserCache)5
nested_array_assignment2.250 usmean 2.792p25-p75 1.750-3.26117.667 usmean 18.288p25-p75 15.594-19.5211.00x (UserCache)5

FPM One Fetch Per Request (APCu serializer=igbinary)

WorkloadUserCacheAPCu/igbinaryFaster/UserCacheWorkers
constant_array1.729 usmean 2.318p25-p75 1.375-2.8444.625 usmean 5.434p25-p75 3.698-6.3751.00x (UserCache)5
route_table_read1.792 usmean 2.549p25-p75 1.458-3.21995.542 usmean 97.268p25-p75 84.792-106.6881.00x (UserCache)5
large_array2.229 usmean 2.990p25-p75 1.583-3.75072.208 usmean 77.375p25-p75 66.938-90.8441.00x (UserCache)5
large_string1.938 usmean 2.291p25-p75 1.375-2.8347.396 usmean 8.180p25-p75 6.542-8.5111.00x (UserCache)5
large_object_graph2.625 usmean 3.270p25-p75 1.906-4.16774.292 usmean 76.813p25-p75 68.073-81.7391.00x (UserCache)5
metadata_object_read3.417 usmean 4.160p25-p75 2.292-5.531109.938 usmean 113.559p25-p75 101.094-124.7081.00x (UserCache)5
metadata_object_fetch_mutate3.375 usmean 4.466p25-p75 2.542-5.886108.229 usmean 111.937p25-p75 98.303-121.8761.00x (UserCache)5
sleep_wakeup_object2.688 usmean 3.368p25-p75 2.000-4.13612.271 usmean 13.043p25-p75 10.427-14.0831.00x (UserCache)5
serialize_magic_entity2.896 usmean 3.753p25-p75 2.125-4.2396.896 usmean 7.808p25-p75 5.708-8.6671.00x (UserCache)5
unserialize_only_entity3.188 usmean 3.782p25-p75 2.417-4.5007.729 usmean 8.728p25-p75 6.625-9.6771.00x (UserCache)5
sleep_wakeup_entity_collection13.083 usmean 14.194p25-p75 10.657-15.20854.292 usmean 56.118p25-p75 47.885-60.2501.00x (UserCache)5
sleep_wakeup_large_dataset2.625 usmean 3.255p25-p75 1.907-4.17775.167 usmean 78.299p25-p75 68.177-88.2081.00x (UserCache)5
recursive_reference_graph13.000 usmean 13.391p25-p75 11.000-14.20839.646 usmean 41.481p25-p75 36.021-45.1461.00x (UserCache)5
mixed_serialization_payload3.708 usmean 4.256p25-p75 2.615-5.04220.646 usmean 21.325p25-p75 18.197-22.8751.00x (UserCache)5
product_listing_view_model17.625 usmean 19.445p25-p75 14.990-21.17769.646 usmean 72.785p25-p75 61.562-79.8441.00x (UserCache)5
multi_key_config_read2.208 usmean 2.643p25-p75 1.615-3.19812.541 usmean 13.134p25-p75 10.958-14.5941.00x (UserCache)5
safe_direct_object6.646 usmean 8.420p25-p75 5.125-10.02111.813 usmean 14.240p25-p75 9.333-16.7711.00x (UserCache)5
spl_collection_object4.167 usmean 4.868p25-p75 3.250-5.67716.146 usmean 17.287p25-p75 14.334-18.5411.00x (UserCache)5
spl_linked_collection_object4.938 usmean 5.866p25-p75 4.042-6.79215.209 usmean 16.485p25-p75 13.792-17.4171.00x (UserCache)5
spl_heap_object5.125 usmean 5.772p25-p75 3.906-7.06329.001 usmean 30.463p25-p75 25.948-33.3021.00x (UserCache)5
carbon_datetime_object268.730 usmean 302.565p25-p75 245.573-307.989312.771 usmean 336.756p25-p75 274.344-356.8231.00x (UserCache)5
carbon_model_object280.583 usmean 301.946p25-p75 239.083-321.771309.750 usmean 334.476p25-p75 271.875-356.4271.00x (UserCache)5
raw_datetime_object23.229 usmean 26.371p25-p75 20.157-28.094117.396 usmean 129.155p25-p75 105.761-137.1461.00x (UserCache)5
raw_model_object20.292 usmean 22.610p25-p75 18.292-23.833120.667 usmean 130.426p25-p75 112.833-134.9381.00x (UserCache)5
serialized_cycle_object2.542 usmean 3.115p25-p75 1.906-3.7083.459 usmean 3.997p25-p75 2.709-4.6661.00x (UserCache)5
reference_assignment_object2.417 usmean 3.002p25-p75 1.875-3.5943.084 usmean 3.759p25-p75 2.542-4.2501.00x (UserCache)5
cycle_assignment_object2.334 usmean 3.003p25-p75 1.781-3.6253.250 usmean 3.815p25-p75 2.615-4.5521.00x (UserCache)5
nested_array_assignment2.146 usmean 2.501p25-p75 1.615-3.16716.917 usmean 17.489p25-p75 15.240-18.6461.00x (UserCache)5

FPM Hot Read (APCu serializer=php)

WorkloadUserCacheAPCu/phpFaster/UserCacheWorkers
route_table_read0.304 usmean 0.335p25-p75 0.238-0.442212.027 usmean 217.867p25-p75 197.228-230.3871.00x (UserCache)5
large_array0.323 usmean 0.353p25-p75 0.238-0.405116.056 usmean 121.032p25-p75 107.359-131.4621.00x (UserCache)5
large_string0.172 usmean 0.178p25-p75 0.151-0.1925.530 usmean 6.376p25-p75 5.170-7.3711.00x (UserCache)5
large_object_graph0.767 usmean 0.745p25-p75 0.592-0.805125.220 usmean 126.088p25-p75 112.921-135.6561.00x (UserCache)5
metadata_object_read1.392 usmean 1.418p25-p75 1.191-1.604246.913 usmean 250.880p25-p75 229.788-272.8301.00x (UserCache)5
metadata_object_fetch_mutate1.610 usmean 1.601p25-p75 1.289-1.906251.151 usmean 251.487p25-p75 235.370-266.8201.00x (UserCache)5
sleep_wakeup_object0.359 usmean 0.385p25-p75 0.307-0.41211.672 usmean 12.114p25-p75 9.723-12.4731.00x (UserCache)5
serialize_magic_entity0.530 usmean 0.536p25-p75 0.499-0.5973.929 usmean 4.742p25-p75 3.804-4.4551.00x (UserCache)5
unserialize_only_entity0.580 usmean 0.597p25-p75 0.466-0.6794.139 usmean 4.894p25-p75 3.887-6.0251.00x (UserCache)5
sleep_wakeup_entity_collection9.927 usmean 12.198p25-p75 8.738-14.28773.339 usmean 78.263p25-p75 64.159-90.6161.00x (UserCache)5
sleep_wakeup_large_dataset0.288 usmean 0.394p25-p75 0.259-0.480124.373 usmean 128.555p25-p75 118.797-144.4321.00x (UserCache)5
recursive_reference_graph11.272 usmean 11.911p25-p75 8.768-13.73565.316 usmean 68.182p25-p75 57.749-74.1161.00x (UserCache)5
mixed_serialization_payload0.545 usmean 0.678p25-p75 0.502-0.74122.369 usmean 22.561p25-p75 16.332-24.8671.00x (UserCache)5
product_listing_view_model6.958 usmean 8.125p25-p75 6.180-9.74083.118 usmean 86.982p25-p75 76.250-97.8821.00x (UserCache)5
multi_key_config_read0.260 usmean 0.266p25-p75 0.199-0.31010.763 usmean 11.272p25-p75 9.093-12.9621.00x (UserCache)5
safe_direct_object0.843 usmean 0.806p25-p75 0.656-0.9182.648 usmean 2.882p25-p75 2.588-2.9691.00x (UserCache)5
spl_collection_object0.806 usmean 1.017p25-p75 0.763-1.20927.675 usmean 30.500p25-p75 21.711-33.2641.00x (UserCache)5
spl_heap_object1.853 usmean 1.888p25-p75 1.540-2.09742.300 usmean 45.344p25-p75 35.069-54.0691.00x (UserCache)5
carbon_datetime_object252.578 usmean 251.068p25-p75 222.442-271.584284.320 usmean 280.795p25-p75 255.715-316.0041.00x (UserCache)5
carbon_model_object244.618 usmean 252.163p25-p75 220.515-270.127296.670 usmean 299.340p25-p75 278.020-323.7881.00x (UserCache)5
raw_datetime_object10.756 usmean 12.484p25-p75 9.736-13.380137.803 usmean 142.077p25-p75 124.740-161.1131.00x (UserCache)5
raw_model_object8.568 usmean 9.408p25-p75 8.287-11.300153.148 usmean 157.693p25-p75 141.025-168.2531.00x (UserCache)5
serialized_cycle_object0.248 usmean 0.316p25-p75 0.233-0.4160.786 usmean 0.802p25-p75 0.728-0.9061.00x (UserCache)5
reference_assignment_object0.197 usmean 0.200p25-p75 0.187-0.2100.504 usmean 0.548p25-p75 0.420-0.6891.00x (UserCache)5
cycle_assignment_object0.260 usmean 0.269p25-p75 0.239-0.2730.838 usmean 0.858p25-p75 0.721-0.8971.00x (UserCache)5
nested_array_assignment0.217 usmean 0.258p25-p75 0.199-0.26210.650 usmean 11.819p25-p75 9.672-14.3701.00x (UserCache)5

FPM Hot Read (APCu serializer=igbinary)

WorkloadUserCacheAPCu/igbinaryFaster/UserCacheWorkers
route_table_read0.261 usmean 0.323p25-p75 0.228-0.39076.385 usmean 81.299p25-p75 66.420-90.9851.00x (UserCache)5
large_array0.255 usmean 0.280p25-p75 0.208-0.31473.193 usmean 76.799p25-p75 60.865-80.2201.00x (UserCache)5
large_string0.169 usmean 0.167p25-p75 0.135-0.1835.360 usmean 5.214p25-p75 4.774-5.8531.00x (UserCache)5
large_object_graph0.600 usmean 0.626p25-p75 0.594-0.63562.959 usmean 68.568p25-p75 60.153-77.2561.00x (UserCache)5
metadata_object_read1.095 usmean 1.155p25-p75 1.060-1.20189.145 usmean 96.890p25-p75 83.867-112.0381.00x (UserCache)5
metadata_object_fetch_mutate1.489 usmean 1.519p25-p75 1.144-1.77199.186 usmean 100.651p25-p75 88.242-113.3721.00x (UserCache)5
sleep_wakeup_object0.378 usmean 0.399p25-p75 0.333-0.4465.746 usmean 6.215p25-p75 5.251-6.2281.00x (UserCache)5
serialize_magic_entity0.369 usmean 0.472p25-p75 0.353-0.4174.521 usmean 4.435p25-p75 4.212-4.8621.00x (UserCache)5
unserialize_only_entity0.603 usmean 0.568p25-p75 0.450-0.6213.134 usmean 3.228p25-p75 3.084-3.2521.00x (UserCache)5
sleep_wakeup_entity_collection10.490 usmean 11.093p25-p75 9.790-11.79941.715 usmean 46.508p25-p75 36.748-55.5331.00x (UserCache)5
sleep_wakeup_large_dataset0.348 usmean 0.341p25-p75 0.275-0.37374.521 usmean 73.510p25-p75 59.540-83.8961.00x (UserCache)5
recursive_reference_graph11.579 usmean 13.255p25-p75 10.549-13.53951.965 usmean 54.135p25-p75 49.063-56.9711.00x (UserCache)5
mixed_serialization_payload0.676 usmean 0.664p25-p75 0.520-0.74411.160 usmean 12.684p25-p75 10.325-14.1841.00x (UserCache)5
product_listing_view_model7.164 usmean 8.154p25-p75 6.881-9.32350.380 usmean 54.179p25-p75 47.878-54.7941.00x (UserCache)5
multi_key_config_read0.238 usmean 0.234p25-p75 0.199-0.2656.965 usmean 6.287p25-p75 5.627-7.4141.00x (UserCache)5
safe_direct_object0.636 usmean 0.685p25-p75 0.610-0.6963.013 usmean 3.051p25-p75 2.833-3.2201.00x (UserCache)5
spl_collection_object1.034 usmean 1.006p25-p75 0.853-1.0897.220 usmean 8.027p25-p75 7.017-8.6551.00x (UserCache)5
spl_heap_object1.724 usmean 1.741p25-p75 1.402-1.94614.155 usmean 15.827p25-p75 12.714-16.5481.00x (UserCache)5
carbon_datetime_object241.256 usmean 245.096p25-p75 227.960-255.717262.102 usmean 264.984p25-p75 245.554-287.6161.00x (UserCache)5
carbon_model_object246.977 usmean 250.270p25-p75 222.066-276.604266.909 usmean 273.685p25-p75 251.147-294.6711.00x (UserCache)5
raw_datetime_object13.038 usmean 13.930p25-p75 10.575-15.815129.844 usmean 137.004p25-p75 113.206-161.1591.00x (UserCache)5
raw_model_object11.407 usmean 11.078p25-p75 8.400-13.165129.047 usmean 132.199p25-p75 118.679-144.6821.00x (UserCache)5
serialized_cycle_object0.320 usmean 0.338p25-p75 0.269-0.3490.636 usmean 0.661p25-p75 0.620-0.6741.00x (UserCache)5
reference_assignment_object0.247 usmean 0.259p25-p75 0.210-0.3030.464 usmean 0.497p25-p75 0.429-0.5081.00x (UserCache)5
cycle_assignment_object0.288 usmean 0.277p25-p75 0.217-0.3190.646 usmean 0.655p25-p75 0.612-0.7141.00x (UserCache)5
nested_array_assignment0.206 usmean 0.229p25-p75 0.187-0.2178.069 usmean 8.916p25-p75 6.664-9.7531.00x (UserCache)5

Resident Payload Probe

WorkloadResident direct accessUserCache fetch + accessEstimated fetch overheadResident / UserCache
constant_arrayresident baseline note0.058 us0.150 us0.092 us0.39x
route_table_readresident baseline note0.120 us0.265 us0.145 us0.45x
large_arrayresident baseline note0.074 us0.170 us0.096 us0.44x
large_stringresident baseline note0.034 us0.104 us0.070 us0.33x
product_listing_view_modelresident baseline note0.089 us5.904 us5.815 us0.02x

Bulk Read: 32 Keys

BackendMedian/batchMean/batchMean/key
user_cache_fetch_multipleUserCache fetchMultiple1.469 us1.514 us0.047 us
user_cache_fetch_loopUserCache fetch loop2.347 us2.321 us0.073 us
apcu_fetch_multipleAPCu fetch array10.102 us10.080 us0.315 us
apcu_fetch_loopAPCu fetch loop11.284 us11.337 us0.354 us

Bulk Read: 128 Keys

BackendMedian/batchMean/batchMean/key
user_cache_fetch_multipleUserCache fetchMultiple5.946 us6.074 us0.047 us
user_cache_fetch_loopUserCache fetch loop8.351 us8.539 us0.067 us
apcu_fetch_multipleAPCu fetch array40.632 us40.339 us0.315 us
apcu_fetch_loopAPCu fetch loop44.931 us45.011 us0.352 us

Artifacts

ArtifactPath
CLI repeated read JSON/workspaces/php-src/php-user_cache_benchmark_harness/results/read-workloads-20260715T042452Z/median/cli-read/user-cache-benchmark-median.json
CLI write JSON/workspaces/php-src/php-user_cache_benchmark_harness/results/read-workloads-20260715T042452Z/median/cli-write/user-cache-benchmark-median.json
Resident probe JSON/workspaces/php-src/php-user_cache_benchmark_harness/results/read-workloads-20260715T042452Z/median/resident-payload-probe.json
FPM one fetch/request JSON #1/workspaces/php-src/php-user_cache_benchmark_harness/results/read-workloads-20260715T042452Z/median/fpm-read-once-php.json
FPM one fetch/request JSON #2/workspaces/php-src/php-user_cache_benchmark_harness/results/read-workloads-20260715T042452Z/median/fpm-read-once-igbinary.json
FPM hot read JSON #1/workspaces/php-src/php-user_cache_benchmark_harness/results/read-workloads-20260715T042452Z/median/fpm-read-hot-php.json
FPM hot read JSON #2/workspaces/php-src/php-user_cache_benchmark_harness/results/read-workloads-20260715T042452Z/median/fpm-read-hot-igbinary.json
Bulk read JSON #1/workspaces/php-src/php-user_cache_benchmark_harness/results/read-workloads-20260715T042452Z/median/bulk-read-32.json
Bulk read JSON #2/workspaces/php-src/php-user_cache_benchmark_harness/results/read-workloads-20260715T042452Z/median/bulk-read-128.json

Workloads

Click a workload name in the result tables to jump to its description. CLI repeated read stores the payload before timing, then measures only fetch() plus the access probe. CLI store repeatedly stores the payload over the configured key space. Resident direct access runs only the access probe against an already-resident payload. FPM rows run the same fetch path through nginx/php-fpm workers. Bulk read primes multiple keys, then measures fetching the whole key set.

WorkloadWhat It MeasuresMeasured In
constant_arrayConstant arraySmall immutable constant-array payload.Mutates fetched copy: noCLI repeated read, CLI store, Resident direct access, FPM one fetch/request
route_table_readCompiled route table readFramework-shaped compiled route table and URL generator arrays.Mutates fetched copy: noCLI repeated read, CLI store, Resident direct access, FPM one fetch/request, FPM hot read
large_arrayLarge nested arrayLarger object-free nested array with repeated scalar leaves.Mutates fetched copy: noCLI repeated read, CLI store, Resident direct access, FPM one fetch/request, FPM hot read
large_stringLarge immutable stringLarge string payload that stresses byte-copy avoidance on repeated reads.Mutates fetched copy: noCLI repeated read, CLI store, Resident direct access, FPM one fetch/request, FPM hot read
large_object_graphLarge direct userland-object graphLarge payload object containing many array rows and a child object.Mutates fetched copy: noCLI repeated read, CLI store, FPM one fetch/request, FPM hot read
metadata_object_readApplication metadata object readApplication metadata object with route and service metadata arrays.Mutates fetched copy: noCLI repeated read, CLI store, FPM one fetch/request, FPM hot read
metadata_object_fetch_mutateApplication metadata object fetch and mutateFetches a cached userland object graph, then mutates the fetched copy.Mutates fetched copy: yesCLI repeated read, CLI store, FPM one fetch/request, FPM hot read
sleep_wakeup_object__sleep()/__wakeup() contract objectObject routed through the serialization contract: __sleep() filters state on store, __wakeup() runs per fetch.Mutates fetched copy: noCLI repeated read, CLI store, FPM one fetch/request, FPM hot read
serialize_magic_entity__serialize()/__unserialize() entityModern entity pair using the __serialize()/__unserialize() contract with a related entity.Mutates fetched copy: noCLI repeated read, CLI store, FPM one fetch/request, FPM hot read
unserialize_only_entity__unserialize() only entityUserland entity declaring __unserialize() without __serialize(), matching the legacy object-data format.Mutates fetched copy: noCLI repeated read, CLI store, FPM one fetch/request, FPM hot read
sleep_wakeup_entity_collection__sleep() entity result-set collectionORM-style result set: 100 small entities each running the __sleep()/__wakeup() contract.Mutates fetched copy: noCLI repeated read, CLI store, FPM one fetch/request, FPM hot read
sleep_wakeup_large_dataset__sleep() object holding a large datasetReport-style object with the standard large row set behind the serialization contract.Mutates fetched copy: noCLI repeated read, CLI store, FPM one fetch/request, FPM hot read
recursive_reference_graphRecursive parent/child reference graphCategory-tree object graph with parent back-references and the __sleep()/__wakeup() contract.Mutates fetched copy: noCLI repeated read, CLI store, FPM one fetch/request, FPM hot read
mixed_serialization_payloadMixed plain and contract payloadRealistic cache entry mixing plain arrays, __serialize() entities, and __sleep() objects.Mutates fetched copy: noCLI repeated read, CLI store, FPM one fetch/request, FPM hot read
product_listing_view_modelProduct listing view-modelProduction-shaped product-list cache entry mixing DTO objects, facet arrays, pagination context, and generated-at metadata.Mutates fetched copy: noCLI repeated read, CLI store, Resident direct access, FPM one fetch/request, FPM hot read
multi_key_config_readMulti-key configuration readConfiguration-entry map carried over from the old multi-key workload.Mutates fetched copy: noCLI repeated read, CLI store, FPM one fetch/request, FPM hot read
safe_direct_objectDateTime/DateInterval direct-restore objectDateTimeImmutable, DateTimeZone, and DateInterval safe-direct state.Mutates fetched copy: noCLI repeated read, CLI store, FPM one fetch/request, FPM hot read
spl_collection_objectSPL collection direct-restore objectArrayObject, ArrayIterator, RecursiveArrayIterator, and SplFixedArray state.Mutates fetched copy: noCLI repeated read, CLI store, FPM one fetch/request, FPM hot read
spl_linked_collection_objectSPL linked-list direct-restore objectSplDoublyLinkedList, SplQueue, and SplStack state.Mutates fetched copy: noCLI repeated read, CLI store, FPM one fetch/request
spl_heap_objectSPL heap direct-restore objectSplMinHeap, SplMaxHeap, and SplPriorityQueue state.Mutates fetched copy: noCLI repeated read, CLI store, FPM one fetch/request, FPM hot read
carbon_datetime_objectCarbon DateTime serializer objectCarbonImmutable/Carbon/CarbonTimeZone object graph used to compare DateTime-derived restore costs.Mutates fetched copy: noCLI repeated read, CLI store, FPM one fetch/request, FPM hot read
carbon_model_objectModel with Carbon propertiesDummy model objects with three Carbon properties: createdAt, updatedAt, and publishedAt.Mutates fetched copy: noCLI repeated read, CLI store, FPM one fetch/request, FPM hot read
raw_datetime_objectRaw DateTime serializer objectDateTimeImmutable/DateTime/DateTimeZone object graph mirroring carbon_datetime_object with native date types.Mutates fetched copy: noCLI repeated read, CLI store, FPM one fetch/request, FPM hot read
raw_model_objectModel with DateTime propertiesDummy model objects with three native DateTime properties: createdAt, updatedAt, and publishedAt.Mutates fetched copy: noCLI repeated read, CLI store, FPM one fetch/request, FPM hot read
serialized_cycle_objectSerialized cyclic objectCyclic object graph workload used to exercise serialization fallback behavior.Mutates fetched copy: noCLI repeated read, CLI store, FPM one fetch/request, FPM hot read
reference_assignment_objectAssigned object with child referenceUserland object with a nested referenced child object.Mutates fetched copy: noCLI repeated read, CLI store, FPM one fetch/request, FPM hot read
cycle_assignment_objectAssigned cyclic objectCyclic userland object graph with identity-preserving peer reference.Mutates fetched copy: noCLI repeated read, CLI store, FPM one fetch/request, FPM hot read
nested_array_assignmentAssigned nested array mutationNested array payload used by the old assignment mutation workload.Mutates fetched copy: noCLI repeated read, CLI store, FPM one fetch/request, FPM hot read
bulk_read_32_keysBulk Read: 32 KeysUses the multi-key config payload, primes 32 keys before timing, then repeatedly fetches all keys as a batch. UserCache is measured with fetchMultiple() and with a per-key fetch() loop; APCu is measured with apcu_fetch(array) and with a per-key loop.Measured batches per iteration: 1500Bulk read
bulk_read_128_keysBulk Read: 128 KeysUses the multi-key config payload, primes 128 keys before timing, then repeatedly fetches all keys as a batch. UserCache is measured with fetchMultiple() and with a per-key fetch() loop; APCu is measured with apcu_fetch(array) and with a per-key loop.Measured batches per iteration: 600Bulk read

Notes

Already-resident data is a baseline

The resident table does not include UserCache store time. It compares direct access to an already-resident payload with fetching a previously stored UserCache entry and running the same access probe. The difference estimates fetch and materialization overhead after the value has already been stored. The primary comparison for UserCache is against APCu/php and APCu/igbinary when reconstructing object-heavy payloads, not against literals already resident in the request.

Slower stores are an expected trade-off for faster reads

Store workloads are shown to make the write-side cost explicit. APCu-style shared caches are usually used for read-heavy paths, where a stored value is read many times. Store throughput is an intentional trade-off in this design, not the metric it is optimized for.