UserCache\Cache Performance Report

Generated at 2026-08-01T14:42:39+00:00. Times are in microseconds; lower is faster.

CLI repeated read28/28 UserCache wins
UserCache
1.00x
APCu/igbinary
0.10x
APCu/php
0.07x
CLI store0/28 UserCache wins
UserCache
1.00x
APCu/igbinary
2.14x
APCu/php
1.75x
Store memory/entry1/28 UserCache wins
UserCache
1.00x
APCu/igbinary
6.96x
APCu/php
2.35x
FPM one fetch/request (APCu serializer=php)28/28 UserCache wins
UserCache
1.00x
APCu/php
0.17x
FPM one fetch/request (APCu serializer=igbinary)28/28 UserCache wins
UserCache
1.00x
APCu/igbinary
0.26x
FPM hot read (APCu serializer=php)26/26 UserCache wins
UserCache
1.00x
APCu/php
0.06x
FPM hot read (APCu serializer=igbinary)26/26 UserCache wins
UserCache
1.00x
APCu/igbinary
0.10x

Environment

PHP8.6.0-dev (cli)
Thread SafetyNTS
Binary/workspaces/php-src/sapi/cli/php
SystemLinux 46f2bc026398 7.0.11-orbstack-00360-gc9bc4d96ac70 #1 SMP PREEMPT Thu Jun 4 16:40:25 UTC 2026 aarch64
CPUApple M5 Max, 18 cores (host-supplied)
RAM31.36 GiB (VM allocation), host 128.00 GiB
VirtualizationOrbStack
user_cache.shm_size128M
Loaded extensionsapcu, Core, ctype, date, dom, fileinfo, filter, hash, iconv, igbinary, json, lexbor, libxml, openssl, 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.116 usmean 0.1151.605 usmean 1.6081.213 usmean 1.2191.00x (UserCache)
route_table_read0.135 usmean 0.137131.338 usmean 131.26045.901 usmean 46.1251.00x (UserCache)
large_array0.109 usmean 0.10972.324 usmean 72.96238.089 usmean 38.7371.00x (UserCache)
large_string0.081 usmean 0.0813.234 usmean 3.2353.308 usmean 3.3401.00x (UserCache)
large_object_graph0.135 usmean 0.13572.527 usmean 72.83638.436 usmean 38.7001.00x (UserCache)
metadata_object_read0.190 usmean 0.191140.305 usmean 140.54355.828 usmean 56.4261.00x (UserCache)
metadata_object_fetch_mutate0.246 usmean 0.246140.868 usmean 140.49255.734 usmean 56.3241.00x (UserCache)
sleep_wakeup_object0.182 usmean 0.1846.992 usmean 6.9753.910 usmean 3.8951.00x (UserCache)
serialize_magic_entity0.262 usmean 0.2632.780 usmean 2.7722.243 usmean 2.2451.00x (UserCache)
unserialize_only_entity0.327 usmean 0.3282.899 usmean 2.9362.321 usmean 2.3241.00x (UserCache)
sleep_wakeup_entity_collection7.017 usmean 7.05241.565 usmean 41.49524.514 usmean 24.6211.00x (UserCache)
sleep_wakeup_large_dataset0.163 usmean 0.16570.097 usmean 70.18238.332 usmean 38.4881.00x (UserCache)
recursive_reference_graph7.873 usmean 8.45129.077 usmean 29.08324.054 usmean 24.3231.00x (UserCache)
mixed_serialization_payload0.379 usmean 0.38512.286 usmean 12.2868.261 usmean 8.2461.00x (UserCache)
product_listing_view_model4.347 usmean 4.39049.947 usmean 50.45830.712 usmean 30.8911.00x (UserCache)
multi_key_config_read0.133 usmean 0.1346.535 usmean 6.5274.064 usmean 4.0721.00x (UserCache)
safe_direct_object0.416 usmean 0.4232.060 usmean 2.0682.056 usmean 2.0581.00x (UserCache)
spl_collection_object0.608 usmean 0.62214.867 usmean 15.0365.551 usmean 5.5711.00x (UserCache)
spl_linked_collection_object1.291 usmean 1.29714.740 usmean 14.9145.420 usmean 5.4131.00x (UserCache)
spl_heap_object0.903 usmean 0.90823.459 usmean 23.4739.664 usmean 9.6711.00x (UserCache)
carbon_datetime_object136.529 usmean 137.746154.668 usmean 154.819147.211 usmean 147.4661.00x (UserCache)
carbon_model_object136.744 usmean 137.524163.246 usmean 163.606155.312 usmean 154.8831.00x (UserCache)
raw_datetime_object6.719 usmean 6.73380.565 usmean 80.72170.625 usmean 71.0041.00x (UserCache)
raw_model_object6.123 usmean 6.13384.762 usmean 85.25072.490 usmean 72.8471.00x (UserCache)
serialized_cycle_object0.132 usmean 0.1330.333 usmean 0.3710.333 usmean 0.3691.00x (UserCache)
reference_assignment_object0.114 usmean 0.1160.293 usmean 0.2930.331 usmean 0.3311.00x (UserCache)
cycle_assignment_object0.132 usmean 0.1340.313 usmean 0.3550.334 usmean 0.3681.00x (UserCache)
nested_array_assignment0.125 usmean 0.1266.887 usmean 6.8814.940 usmean 4.9291.00x (UserCache)

CLI Store

WorkloadUserCacheAPCu/phpAPCu/igbinaryFaster/UserCache
constant_arraystore trade-off note2.029 usmean 2.0341.067 usmean 1.1000.804 usmean 0.8362.52x (APCu/igbinary)
route_table_readstore trade-off note85.738 usmean 85.68078.918 usmean 78.89359.563 usmean 59.8441.44x (APCu/igbinary)
large_arraystore trade-off note64.476 usmean 64.94945.257 usmean 45.28937.411 usmean 37.3321.72x (APCu/igbinary)
large_stringstore trade-off note3.214 usmean 3.2143.061 usmean 3.0603.122 usmean 3.1401.05x (APCu/php)
large_object_graphstore trade-off note92.167 usmean 92.10944.686 usmean 44.70236.528 usmean 36.6132.52x (APCu/igbinary)
metadata_object_readstore trade-off note141.938 usmean 141.88083.279 usmean 82.86766.386 usmean 66.5902.14x (APCu/igbinary)
metadata_object_fetch_mutatestore trade-off note142.198 usmean 142.24882.801 usmean 83.07966.606 usmean 66.7052.13x (APCu/igbinary)
sleep_wakeup_objectstore trade-off note8.352 usmean 8.3914.659 usmean 4.6283.804 usmean 3.7702.20x (APCu/igbinary)
serialize_magic_entitystore trade-off note5.044 usmean 5.0551.832 usmean 1.8641.826 usmean 1.8192.76x (APCu/igbinary)
unserialize_only_entitystore trade-off note4.798 usmean 4.8141.827 usmean 1.8581.679 usmean 1.7272.86x (APCu/igbinary)
sleep_wakeup_entity_collectionstore trade-off note79.395 usmean 79.60026.250 usmean 26.24918.904 usmean 19.0534.20x (APCu/igbinary)
sleep_wakeup_large_datasetstore trade-off note90.013 usmean 90.11445.008 usmean 45.50037.527 usmean 37.4522.40x (APCu/igbinary)
recursive_reference_graphstore trade-off note36.441 usmean 36.46816.845 usmean 16.86314.154 usmean 14.1682.57x (APCu/igbinary)
mixed_serialization_payloadstore trade-off note19.890 usmean 20.1138.160 usmean 8.1937.962 usmean 7.9912.50x (APCu/igbinary)
product_listing_view_modelstore trade-off note53.282 usmean 53.16520.051 usmean 20.06518.528 usmean 18.5492.88x (APCu/igbinary)
multi_key_config_readstore trade-off note7.027 usmean 7.0234.536 usmean 4.5083.542 usmean 3.5001.98x (APCu/igbinary)
safe_direct_objectstore trade-off note1.477 usmean 1.5221.038 usmean 1.0711.150 usmean 1.1701.42x (APCu/php)
spl_collection_objectstore trade-off note14.739 usmean 14.8309.653 usmean 9.7034.334 usmean 4.3293.40x (APCu/igbinary)
spl_linked_collection_objectstore trade-off note13.703 usmean 13.7759.729 usmean 9.7363.989 usmean 3.9393.43x (APCu/igbinary)
spl_heap_objectstore trade-off note25.339 usmean 25.34516.801 usmean 16.8738.809 usmean 8.8322.88x (APCu/igbinary)
carbon_datetime_objectstore trade-off note342.010 usmean 342.190267.014 usmean 266.620266.837 usmean 267.2741.28x (APCu/igbinary)
carbon_model_objectstore trade-off note373.148 usmean 372.989298.183 usmean 297.798292.753 usmean 293.3361.27x (APCu/igbinary)
raw_datetime_objectstore trade-off note65.472 usmean 65.54541.639 usmean 41.68541.691 usmean 41.8791.57x (APCu/php)
raw_model_objectstore trade-off note65.366 usmean 65.48544.119 usmean 44.19443.571 usmean 43.6801.50x (APCu/igbinary)
serialized_cycle_objectstore trade-off note0.510 usmean 0.5350.260 usmean 0.2600.263 usmean 0.2641.96x (APCu/php)
reference_assignment_objectstore trade-off note0.490 usmean 0.5020.243 usmean 0.2450.261 usmean 0.2622.02x (APCu/php)
cycle_assignment_objectstore trade-off note0.492 usmean 0.4970.266 usmean 0.2700.260 usmean 0.2651.89x (APCu/igbinary)
nested_array_assignmentstore trade-off note8.595 usmean 8.5754.270 usmean 4.2854.983 usmean 4.9152.01x (APCu/php)

Store Memory Per Entry

Marginal shared-memory bytes one additional entry of each workload costs the backend, measured as the backend used-memory delta across 64 distinct keys during the CLI store phase. Fixed segment overhead (headers, hash tables) cancels out of the delta. serialize() and igbinary byte sizes are shown as wire-size references; lower is better.

WorkloadUserCacheAPCu/phpAPCu/igbinarySmallest/UserCacheserialize()igbinary
constant_array5,552 B1,864 B840 B6.61x (APCu/igbinary)1,602 B575 B
route_table_read278,624 B168,336 B34,808 B8.00x (APCu/igbinary)168,073 B34,538 B
large_array213,232 B90,280 B35,488 B6.01x (APCu/igbinary)90,025 B35,224 B
large_string196,839 B196,864 B196,879 B1.00x (UserCache)196,620 B196,617 B
large_object_graph214,040 B90,568 B35,776 B5.98x (APCu/igbinary)90,310 B35,508 B
metadata_object_read319,319 B180,904 B41,815 B7.64x (APCu/igbinary)180,641 B41,538 B
metadata_object_fetch_mutate319,343 B180,920 B41,831 B7.63x (APCu/igbinary)180,654 B41,551 B
sleep_wakeup_object21,632 B9,896 B3,048 B7.10x (APCu/igbinary)9,637 B2,780 B
serialize_magic_entity14,448 B4,136 B2,488 B5.81x (APCu/igbinary)3,864 B2,209 B
unserialize_only_entity14,744 B4,528 B2,696 B5.47x (APCu/igbinary)4,256 B2,416 B
sleep_wakeup_entity_collection74,560 B30,688 B8,408 B8.87x (APCu/igbinary)30,409 B8,122 B
sleep_wakeup_large_dataset214,352 B91,320 B36,520 B5.87x (APCu/igbinary)91,053 B36,246 B
recursive_reference_graph47,072 B18,728 B5,496 B8.56x (APCu/igbinary)18,462 B5,219 B
mixed_serialization_payload43,888 B15,544 B7,256 B6.05x (APCu/igbinary)15,278 B6,976 B
product_listing_view_model86,336 B38,112 B12,664 B6.82x (APCu/igbinary)37,844 B12,389 B
multi_key_config_read26,240 B9,615 B2,504 B10.48x (APCu/igbinary)9,351 B2,227 B
safe_direct_object2,488 B872 B600 B4.15x (APCu/igbinary)615 B328 B
spl_collection_object27,080 B15,871 B3,168 B8.55x (APCu/igbinary)15,602 B2,895 B
spl_linked_collection_object21,567 B16,056 B3,167 B6.81x (APCu/igbinary)15,786 B2,884 B
spl_heap_object39,032 B22,712 B4,088 B9.55x (APCu/igbinary)22,449 B3,819 B
carbon_datetime_object67,376 B32,048 B7,304 B9.22x (APCu/igbinary)31,783 B7,031 B
carbon_model_object73,720 B31,304 B8,304 B8.88x (APCu/igbinary)31,040 B8,038 B
raw_datetime_object92,736 B28,080 B6,864 B13.51x (APCu/igbinary)27,818 B6,594 B
raw_model_object94,336 B30,392 B8,296 B11.37x (APCu/igbinary)30,128 B8,025 B
serialized_cycle_object616 B464 B376 B1.64x (APCu/igbinary)194 B99 B
reference_assignment_object656 B440 B400 B1.64x (APCu/igbinary)170 B124 B
cycle_assignment_object616 B456 B368 B1.67x (APCu/igbinary)184 B89 B
nested_array_assignment31,624 B8,168 B3,344 B9.46x (APCu/igbinary)7,897 B3,066 B

Empty-cache fixed overhead (headers and hash tables, excluded from the per-entry deltas above): UserCache 4.55 MiB, APCu/php 0.13 MiB, APCu/igbinary 0.13 MiB.

FPM One Fetch Per Request (APCu serializer=php)

WorkloadUserCacheAPCu/phpFaster/UserCacheWorkers
constant_array2.605 usmean 2.832p25-p75 2.000-3.5526.083 usmean 6.361p25-p75 5.000-7.3751.00x (UserCache)5
route_table_read1.916 usmean 2.394p25-p75 1.542-3.166252.500 usmean 260.874p25-p75 232.770-280.2401.00x (UserCache)5
large_array1.875 usmean 2.336p25-p75 1.458-2.959137.229 usmean 135.907p25-p75 130.042-145.7191.00x (UserCache)5
large_string2.021 usmean 2.638p25-p75 1.625-3.1258.021 usmean 8.033p25-p75 7.000-8.8751.00x (UserCache)5
large_object_graph3.021 usmean 3.702p25-p75 2.334-4.709155.667 usmean 153.761p25-p75 142.667-164.6671.00x (UserCache)5
metadata_object_read3.417 usmean 4.098p25-p75 2.698-4.834276.875 usmean 278.627p25-p75 256.187-290.7191.00x (UserCache)5
metadata_object_fetch_mutate2.875 usmean 3.437p25-p75 2.167-3.969244.501 usmean 250.987p25-p75 227.646-267.3331.00x (UserCache)5
sleep_wakeup_object2.917 usmean 3.303p25-p75 2.167-3.92717.854 usmean 18.196p25-p75 15.542-20.8231.00x (UserCache)5
serialize_magic_entity3.459 usmean 3.810p25-p75 2.708-4.6258.459 usmean 8.710p25-p75 7.031-10.2081.00x (UserCache)5
unserialize_only_entity4.125 usmean 4.278p25-p75 3.281-5.2609.980 usmean 10.248p25-p75 8.729-11.8021.00x (UserCache)5
sleep_wakeup_entity_collection16.396 usmean 16.168p25-p75 13.687-18.469101.375 usmean 98.935p25-p75 79.667-109.9161.00x (UserCache)5
sleep_wakeup_large_dataset2.980 usmean 3.485p25-p75 2.125-4.469155.688 usmean 157.648p25-p75 129.448-162.5941.00x (UserCache)5
recursive_reference_graph15.833 usmean 15.816p25-p75 14.323-17.92767.021 usmean 66.027p25-p75 62.312-71.2921.00x (UserCache)5
mixed_serialization_payload4.438 usmean 4.876p25-p75 3.250-6.01131.146 usmean 32.827p25-p75 27.500-36.3021.00x (UserCache)5
product_listing_view_model17.792 usmean 17.555p25-p75 13.833-20.51094.605 usmean 95.733p25-p75 80.312-111.2081.00x (UserCache)5
multi_key_config_read2.667 usmean 2.892p25-p75 2.042-3.58315.813 usmean 16.214p25-p75 13.896-17.7911.00x (UserCache)5
safe_direct_object8.521 usmean 9.765p25-p75 6.948-10.77115.146 usmean 16.384p25-p75 11.990-19.5831.00x (UserCache)5
spl_collection_object5.146 usmean 6.531p25-p75 3.865-7.75040.188 usmean 43.036p25-p75 32.000-49.0011.00x (UserCache)5
spl_linked_collection_object5.959 usmean 6.328p25-p75 4.708-7.54141.250 usmean 41.128p25-p75 33.927-46.1351.00x (UserCache)5
spl_heap_object5.605 usmean 5.914p25-p75 4.156-7.00058.604 usmean 59.215p25-p75 43.396-67.6051.00x (UserCache)5
carbon_datetime_object288.938 usmean 276.509p25-p75 248.458-306.948327.458 usmean 325.886p25-p75 273.125-341.3541.00x (UserCache)5
carbon_model_object250.563 usmean 255.346p25-p75 220.156-284.125301.667 usmean 318.720p25-p75 260.479-341.8551.00x (UserCache)5
raw_datetime_object25.625 usmean 27.459p25-p75 21.645-31.531129.125 usmean 139.496p25-p75 116.573-155.4581.00x (UserCache)5
raw_model_object21.375 usmean 22.550p25-p75 17.823-25.625132.584 usmean 143.457p25-p75 119.823-161.5521.00x (UserCache)5
serialized_cycle_object3.292 usmean 3.719p25-p75 2.625-5.2084.063 usmean 4.657p25-p75 2.834-6.1361.00x (UserCache)5
reference_assignment_object3.000 usmean 3.534p25-p75 2.375-4.1353.688 usmean 4.132p25-p75 2.750-5.0001.00x (UserCache)5
cycle_assignment_object2.917 usmean 3.655p25-p75 2.375-4.2503.250 usmean 3.667p25-p75 2.583-4.5941.00x (UserCache)5
nested_array_assignment2.563 usmean 2.720p25-p75 1.959-3.45818.938 usmean 19.802p25-p75 16.667-22.5111.00x (UserCache)5

FPM One Fetch Per Request (APCu serializer=igbinary)

WorkloadUserCacheAPCu/igbinaryFaster/UserCacheWorkers
constant_array2.458 usmean 2.657p25-p75 1.792-3.2914.958 usmean 5.779p25-p75 3.928-6.3331.00x (UserCache)5
route_table_read2.209 usmean 2.593p25-p75 1.406-3.28195.376 usmean 99.463p25-p75 88.448-106.1881.00x (UserCache)5
large_array2.250 usmean 2.627p25-p75 1.573-3.54170.542 usmean 80.659p25-p75 61.115-92.6461.00x (UserCache)5
large_string1.875 usmean 2.666p25-p75 1.167-3.3448.125 usmean 7.985p25-p75 5.959-9.5621.00x (UserCache)5
large_object_graph2.375 usmean 3.103p25-p75 1.698-3.97974.438 usmean 78.328p25-p75 67.927-84.0631.00x (UserCache)5
metadata_object_read3.688 usmean 4.088p25-p75 2.698-5.000103.063 usmean 107.597p25-p75 95.719-111.7811.00x (UserCache)5
metadata_object_fetch_mutate4.542 usmean 5.197p25-p75 2.657-6.427106.958 usmean 113.770p25-p75 99.239-113.6351.00x (UserCache)5
sleep_wakeup_object2.834 usmean 3.697p25-p75 2.084-4.71912.813 usmean 14.015p25-p75 10.865-16.3131.00x (UserCache)5
serialize_magic_entity3.667 usmean 4.208p25-p75 2.792-5.2508.084 usmean 8.723p25-p75 6.656-10.4801.00x (UserCache)5
unserialize_only_entity5.146 usmean 5.180p25-p75 3.667-6.43710.292 usmean 10.539p25-p75 8.229-12.0621.00x (UserCache)5
sleep_wakeup_entity_collection17.438 usmean 17.575p25-p75 13.854-19.85461.501 usmean 59.074p25-p75 49.771-67.8031.00x (UserCache)5
sleep_wakeup_large_dataset3.333 usmean 3.765p25-p75 2.656-4.75088.375 usmean 88.784p25-p75 75.677-94.2501.00x (UserCache)5
recursive_reference_graph14.875 usmean 15.447p25-p75 11.490-16.66738.646 usmean 41.153p25-p75 32.812-44.3131.00x (UserCache)5
mixed_serialization_payload5.063 usmean 5.556p25-p75 3.834-6.71926.459 usmean 26.701p25-p75 21.865-29.8021.00x (UserCache)5
product_listing_view_model20.209 usmean 20.080p25-p75 14.542-23.63671.125 usmean 75.455p25-p75 64.448-86.1781.00x (UserCache)5
multi_key_config_read3.125 usmean 3.485p25-p75 2.281-4.46914.709 usmean 14.686p25-p75 12.657-16.7081.00x (UserCache)5
safe_direct_object7.000 usmean 7.659p25-p75 5.531-9.63512.188 usmean 13.018p25-p75 9.282-15.5421.00x (UserCache)5
spl_collection_object4.876 usmean 5.330p25-p75 3.917-6.55217.438 usmean 17.720p25-p75 15.417-19.6351.00x (UserCache)5
spl_linked_collection_object6.646 usmean 7.284p25-p75 5.291-9.15618.667 usmean 19.327p25-p75 15.375-21.7711.00x (UserCache)5
spl_heap_object6.813 usmean 7.320p25-p75 5.375-9.04235.334 usmean 35.271p25-p75 29.969-40.5521.00x (UserCache)5
carbon_datetime_object277.355 usmean 276.789p25-p75 226.990-295.511302.563 usmean 301.926p25-p75 242.073-320.5001.00x (UserCache)5
carbon_model_object243.416 usmean 249.795p25-p75 227.115-267.583275.605 usmean 285.417p25-p75 259.312-303.6561.00x (UserCache)5
raw_datetime_object29.542 usmean 28.907p25-p75 24.875-33.781137.041 usmean 130.249p25-p75 98.969-151.2191.00x (UserCache)5
raw_model_object24.771 usmean 24.544p25-p75 20.552-29.052133.979 usmean 129.971p25-p75 118.604-144.0941.00x (UserCache)5
serialized_cycle_object3.063 usmean 3.525p25-p75 2.282-4.2084.063 usmean 4.485p25-p75 3.240-5.4171.00x (UserCache)5
reference_assignment_object2.500 usmean 2.685p25-p75 1.823-3.2503.042 usmean 3.321p25-p75 2.458-3.7501.00x (UserCache)5
cycle_assignment_object2.896 usmean 3.288p25-p75 2.240-3.8853.396 usmean 3.837p25-p75 2.667-4.4371.00x (UserCache)5
nested_array_assignment2.896 usmean 3.193p25-p75 2.166-3.95818.458 usmean 17.867p25-p75 15.354-20.8541.00x (UserCache)5

FPM Hot Read (APCu serializer=php)

WorkloadUserCacheAPCu/phpFaster/UserCacheWorkers
route_table_read0.241 usmean 0.264p25-p75 0.209-0.317144.208 usmean 153.572p25-p75 134.443-157.7221.00x (UserCache)5
large_array0.198 usmean 0.221p25-p75 0.172-0.26676.507 usmean 77.493p25-p75 75.574-77.7591.00x (UserCache)5
large_string0.126 usmean 0.125p25-p75 0.117-0.1334.661 usmean 4.617p25-p75 4.271-4.8031.00x (UserCache)5
large_object_graph0.486 usmean 0.490p25-p75 0.475-0.51373.106 usmean 76.920p25-p75 72.248-74.2711.00x (UserCache)5
metadata_object_read0.850 usmean 0.849p25-p75 0.813-0.881151.349 usmean 154.998p25-p75 145.496-159.0441.00x (UserCache)5
metadata_object_fetch_mutate0.889 usmean 0.889p25-p75 0.863-0.906144.132 usmean 152.466p25-p75 140.999-155.4821.00x (UserCache)5
sleep_wakeup_object0.245 usmean 0.249p25-p75 0.234-0.2607.455 usmean 7.785p25-p75 7.256-7.6721.00x (UserCache)5
serialize_magic_entity0.319 usmean 0.327p25-p75 0.305-0.3353.092 usmean 3.186p25-p75 3.010-3.1991.00x (UserCache)5
unserialize_only_entity0.384 usmean 0.389p25-p75 0.377-0.3963.194 usmean 3.245p25-p75 3.150-3.2091.00x (UserCache)5
sleep_wakeup_entity_collection7.475 usmean 7.534p25-p75 7.329-7.69245.141 usmean 49.931p25-p75 44.112-49.6301.00x (UserCache)5
sleep_wakeup_large_dataset0.230 usmean 0.226p25-p75 0.206-0.24073.350 usmean 79.976p25-p75 71.217-91.4581.00x (UserCache)5
recursive_reference_graph6.941 usmean 7.435p25-p75 6.880-7.07641.227 usmean 44.618p25-p75 40.261-42.5451.00x (UserCache)5
mixed_serialization_payload0.448 usmean 0.449p25-p75 0.430-0.47112.690 usmean 14.256p25-p75 12.257-13.7761.00x (UserCache)5
product_listing_view_model5.343 usmean 5.356p25-p75 5.202-5.51450.895 usmean 57.813p25-p75 50.264-62.0981.00x (UserCache)5
multi_key_config_read0.178 usmean 0.180p25-p75 0.170-0.1926.791 usmean 7.143p25-p75 6.659-6.9811.00x (UserCache)5
safe_direct_object0.510 usmean 0.527p25-p75 0.495-0.5502.253 usmean 2.412p25-p75 2.179-2.3271.00x (UserCache)5
spl_collection_object0.688 usmean 0.699p25-p75 0.662-0.71016.634 usmean 17.535p25-p75 15.746-17.2491.00x (UserCache)5
spl_heap_object1.028 usmean 1.028p25-p75 1.005-1.03724.645 usmean 26.444p25-p75 24.176-26.1151.00x (UserCache)5
carbon_datetime_object145.020 usmean 149.419p25-p75 142.020-153.616165.512 usmean 167.472p25-p75 162.488-167.9491.00x (UserCache)5
carbon_model_object145.585 usmean 148.561p25-p75 143.622-152.418172.366 usmean 176.834p25-p75 170.228-175.1521.00x (UserCache)5
raw_datetime_object7.294 usmean 7.316p25-p75 7.197-7.36381.075 usmean 81.920p25-p75 80.366-82.9831.00x (UserCache)5
raw_model_object6.806 usmean 7.034p25-p75 6.755-6.87491.123 usmean 94.583p25-p75 89.688-94.9501.00x (UserCache)5
serialized_cycle_object0.216 usmean 0.217p25-p75 0.205-0.2240.452 usmean 0.491p25-p75 0.441-0.4981.00x (UserCache)5
reference_assignment_object0.174 usmean 0.179p25-p75 0.169-0.1940.338 usmean 0.394p25-p75 0.329-0.4221.00x (UserCache)5
cycle_assignment_object0.226 usmean 0.225p25-p75 0.213-0.2370.546 usmean 0.561p25-p75 0.494-0.6291.00x (UserCache)5
nested_array_assignment0.181 usmean 0.184p25-p75 0.162-0.2028.510 usmean 8.941p25-p75 8.200-9.0651.00x (UserCache)5

FPM Hot Read (APCu serializer=igbinary)

WorkloadUserCacheAPCu/igbinaryFaster/UserCacheWorkers
route_table_read0.228 usmean 0.251p25-p75 0.197-0.28850.365 usmean 54.661p25-p75 48.817-53.4321.00x (UserCache)5
large_array0.194 usmean 0.208p25-p75 0.175-0.23439.964 usmean 40.538p25-p75 39.287-40.4451.00x (UserCache)5
large_string0.117 usmean 0.118p25-p75 0.112-0.1234.334 usmean 4.251p25-p75 3.567-4.7631.00x (UserCache)5
large_object_graph0.474 usmean 0.483p25-p75 0.463-0.49141.167 usmean 43.103p25-p75 40.306-42.3581.00x (UserCache)5
metadata_object_read0.807 usmean 0.817p25-p75 0.787-0.84557.675 usmean 60.793p25-p75 57.051-63.8771.00x (UserCache)5
metadata_object_fetch_mutate0.910 usmean 0.923p25-p75 0.877-0.94358.479 usmean 62.267p25-p75 57.178-60.3381.00x (UserCache)5
sleep_wakeup_object0.241 usmean 0.244p25-p75 0.228-0.2524.106 usmean 4.230p25-p75 4.004-4.2391.00x (UserCache)5
serialize_magic_entity0.321 usmean 0.321p25-p75 0.302-0.3392.464 usmean 2.480p25-p75 2.396-2.5831.00x (UserCache)5
unserialize_only_entity0.382 usmean 0.386p25-p75 0.367-0.3932.630 usmean 2.641p25-p75 2.580-2.6961.00x (UserCache)5
sleep_wakeup_entity_collection7.400 usmean 7.498p25-p75 7.343-7.51825.146 usmean 26.531p25-p75 24.890-25.5721.00x (UserCache)5
sleep_wakeup_large_dataset0.221 usmean 0.228p25-p75 0.211-0.24443.000 usmean 47.665p25-p75 41.915-47.7381.00x (UserCache)5
recursive_reference_graph6.896 usmean 7.198p25-p75 6.660-7.12631.298 usmean 33.095p25-p75 29.233-33.8031.00x (UserCache)5
mixed_serialization_payload0.442 usmean 0.450p25-p75 0.424-0.4788.496 usmean 8.511p25-p75 8.287-8.6761.00x (UserCache)5
product_listing_view_model5.206 usmean 5.258p25-p75 5.024-5.39131.501 usmean 34.669p25-p75 31.013-31.9411.00x (UserCache)5
multi_key_config_read0.174 usmean 0.179p25-p75 0.166-0.1934.324 usmean 4.349p25-p75 4.262-4.4651.00x (UserCache)5
safe_direct_object0.510 usmean 0.523p25-p75 0.493-0.5472.220 usmean 2.223p25-p75 2.152-2.2971.00x (UserCache)5
spl_collection_object0.683 usmean 0.679p25-p75 0.641-0.7115.976 usmean 5.945p25-p75 5.777-6.1311.00x (UserCache)5
spl_heap_object1.006 usmean 1.002p25-p75 0.970-1.03110.384 usmean 11.362p25-p75 10.109-10.7261.00x (UserCache)5
carbon_datetime_object145.656 usmean 151.941p25-p75 144.067-157.422156.726 usmean 159.569p25-p75 155.732-159.0221.00x (UserCache)5
carbon_model_object145.891 usmean 153.629p25-p75 144.402-152.890160.036 usmean 165.993p25-p75 157.956-168.7361.00x (UserCache)5
raw_datetime_object7.299 usmean 7.323p25-p75 7.174-7.40673.746 usmean 74.180p25-p75 72.623-74.3921.00x (UserCache)5
raw_model_object6.743 usmean 6.833p25-p75 6.666-6.89075.549 usmean 76.907p25-p75 74.943-76.3331.00x (UserCache)5
serialized_cycle_object0.214 usmean 0.217p25-p75 0.204-0.2240.512 usmean 0.526p25-p75 0.488-0.5721.00x (UserCache)5
reference_assignment_object0.168 usmean 0.170p25-p75 0.164-0.1770.386 usmean 0.397p25-p75 0.378-0.4001.00x (UserCache)5
cycle_assignment_object0.226 usmean 0.232p25-p75 0.211-0.2410.532 usmean 0.564p25-p75 0.512-0.5671.00x (UserCache)5
nested_array_assignment0.174 usmean 0.194p25-p75 0.167-0.1945.592 usmean 5.543p25-p75 5.368-5.6571.00x (UserCache)5

Resident Payload Probe

WorkloadResident direct accessUserCache fetch + accessEstimated fetch overheadResident / UserCache
constant_arrayresident baseline note0.050 us0.116 us0.066 us0.43x
route_table_readresident baseline note0.077 us0.135 us0.058 us0.57x
large_arrayresident baseline note0.055 us0.109 us0.054 us0.50x
large_stringresident baseline note0.030 us0.081 us0.051 us0.37x
product_listing_view_modelresident baseline note0.077 us4.347 us4.270 us0.02x

Bulk Read: 32 Keys

BackendMedian/batchMean/batchMean/key
user_cache_fetch_multipleUserCache fetchMultiple1.110 us1.118 us0.035 us
user_cache_fetch_loopUserCache fetch loop1.692 us1.692 us0.053 us
apcu_fetch_multipleAPCu fetch array7.242 us7.265 us0.227 us
apcu_fetch_loopAPCu fetch loop8.221 us8.234 us0.257 us

Bulk Read: 128 Keys

BackendMedian/batchMean/batchMean/key
user_cache_fetch_multipleUserCache fetchMultiple4.913 us4.927 us0.038 us
user_cache_fetch_loopUserCache fetch loop7.336 us7.350 us0.057 us
apcu_fetch_multipleAPCu fetch array29.199 us29.280 us0.229 us
apcu_fetch_loopAPCu fetch loop32.915 us32.941 us0.257 us

Artifacts

ArtifactPath
CLI repeated read JSON/workspaces/php-src/php-user_cache_benchmark_harness/results/read-workloads-20260801T143646Z/median/cli-read/user-cache-benchmark-median.json
CLI write JSON/workspaces/php-src/php-user_cache_benchmark_harness/results/read-workloads-20260801T143646Z/median/cli-write/user-cache-benchmark-median.json
Resident probe JSON/workspaces/php-src/php-user_cache_benchmark_harness/results/read-workloads-20260801T143646Z/median/resident-payload-probe.json
FPM one fetch/request JSON #1/workspaces/php-src/php-user_cache_benchmark_harness/results/read-workloads-20260801T143646Z/median/fpm-read-once-php.json
FPM one fetch/request JSON #2/workspaces/php-src/php-user_cache_benchmark_harness/results/read-workloads-20260801T143646Z/median/fpm-read-once-igbinary.json
FPM hot read JSON #1/workspaces/php-src/php-user_cache_benchmark_harness/results/read-workloads-20260801T143646Z/median/fpm-read-hot-php.json
FPM hot read JSON #2/workspaces/php-src/php-user_cache_benchmark_harness/results/read-workloads-20260801T143646Z/median/fpm-read-hot-igbinary.json
Bulk read JSON #1/workspaces/php-src/php-user_cache_benchmark_harness/results/read-workloads-20260801T143646Z/median/bulk-read-32.json
Bulk read JSON #2/workspaces/php-src/php-user_cache_benchmark_harness/results/read-workloads-20260801T143646Z/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.