- Output for git.master_jit
- Warning: Module "Zend OPcache" is already loaded in Unknown on line 0 Warning: Zend OPcache: module registration failed! in Unknown on line 0 Testing IN clause builder with all methods: === FUNCTIONALITY TEST === Result: :test0,:test1,:test2,:test3,:test4 Bind params: {":test0":1,":test1":2,":test2":3,":test3":4,":test4":5} Counter value: 5 === INDIVIDUAL METHOD TESTS === conditional: :test0,:test1,:test2 (params: 3) implode: :test0,:test1,:test2 (params: 3) trim: :test0,:test1,:test2 (params: 3) regex: :test0,:test1,:test2 (params: 3) serializable: :test0,:test1,:test2 (params: 3) array_map: :test0,:test1,:test2 (params: 3) === BENCHMARK RESULTS === Benchmark Results (seconds for 1000 iterations): ================================================================================ PERFORMANCE SUMMARY (typical results): • Small arrays (1-20): conditional comma fastest • Medium arrays (21-100): trim method often fastest • Large arrays (100+): implode method fastest • Regex method: slowest due to overhead • Serializable: moderate performance, good for caching • Array map: good functional style, moderate performance Array Size: 10 ---------------------------------------- 1. implode: 0.000805s 🥇 2. trim: 0.000934s 🥈 3. conditional: 0.001004s 🥉 4. array_map: 0.001070s 5. serializable: 0.001470s 6. regex: 0.001790s Array Size: 50 ---------------------------------------- 1. implode: 0.004084s 🥇 2. trim: 0.004476s 🥈 3. array_map: 0.004526s 🥉 4. conditional: 0.004676s 5. serializable: 0.005439s 6. regex: 0.007032s Array Size: 100 ---------------------------------------- 1. implode: 0.008250s 🥇 2. trim: 0.008982s 🥈 3. array_map: 0.009282s 🥉 4. conditional: 0.009419s 5. serializable: 0.010345s 6. regex: 0.013585s Array Size: 500 ---------------------------------------- 1. implode: 0.041606s 🥇 2. array_map: 0.043503s 🥈 3. trim: 0.044446s 🥉 4. conditional: 0.046475s 5. serializable: 0.050754s 6. regex: 0.067529s Array Size: 1000 ---------------------------------------- 1. implode: 0.085143s 🥇 2. trim: 0.091363s 🥈 3. conditional: 0.094785s 🥉 4. array_map: 0.098564s 5. serializable: 0.129163s 6. regex: 0.150236s === SERIALIZATION TEST === Object: :param1,:param2,:param3 Serialized: a:3:{i:0;s:7:":param1";i:1;s:7:":param2";i:2;s:7:":param3";} Unserialized: :param1,:param2,:param3
- Output for git.master
- Warning: Module "Zend OPcache" is already loaded in Unknown on line 0 Warning: Zend OPcache: module registration failed! in Unknown on line 0 Testing IN clause builder with all methods: === FUNCTIONALITY TEST === Result: :test0,:test1,:test2,:test3,:test4 Bind params: {":test0":1,":test1":2,":test2":3,":test3":4,":test4":5} Counter value: 5 === INDIVIDUAL METHOD TESTS === conditional: :test0,:test1,:test2 (params: 3) implode: :test0,:test1,:test2 (params: 3) trim: :test0,:test1,:test2 (params: 3) regex: :test0,:test1,:test2 (params: 3) serializable: :test0,:test1,:test2 (params: 3) array_map: :test0,:test1,:test2 (params: 3) === BENCHMARK RESULTS === Benchmark Results (seconds for 1000 iterations): ================================================================================ PERFORMANCE SUMMARY (typical results): • Small arrays (1-20): conditional comma fastest • Medium arrays (21-100): trim method often fastest • Large arrays (100+): implode method fastest • Regex method: slowest due to overhead • Serializable: moderate performance, good for caching • Array map: good functional style, moderate performance Array Size: 10 ---------------------------------------- 1. implode: 0.000818s 🥇 2. trim: 0.000936s 🥈 3. conditional: 0.001042s 🥉 4. array_map: 0.001118s 5. serializable: 0.001512s 6. regex: 0.001749s Array Size: 50 ---------------------------------------- 1. implode: 0.004589s 🥇 2. array_map: 0.004677s 🥈 3. trim: 0.004729s 🥉 4. conditional: 0.005028s 5. serializable: 0.006311s 6. regex: 0.007734s Array Size: 100 ---------------------------------------- 1. implode: 0.008834s 🥇 2. conditional: 0.011279s 🥈 3. trim: 0.012140s 🥉 4. serializable: 0.012756s 5. array_map: 0.014137s 6. regex: 0.020486s Array Size: 500 ---------------------------------------- 1. trim: 0.046465s 🥇 2. implode: 0.047177s 🥈 3. serializable: 0.055997s 🥉 4. array_map: 0.059751s 5. conditional: 0.060402s 6. regex: 0.084101s Array Size: 1000 ---------------------------------------- 1. trim: 0.097033s 🥇 2. implode: 0.100145s 🥈 3. conditional: 0.106785s 🥉 4. serializable: 0.111582s 5. array_map: 0.112438s 6. regex: 0.164795s === SERIALIZATION TEST === Object: :param1,:param2,:param3 Serialized: a:3:{i:0;s:7:":param1";i:1;s:7:":param2";i:2;s:7:":param3";} Unserialized: :param1,:param2,:param3
This tab shows result from various feature-branches currently under review by the php developers. Contact me to have additional branches featured.
Active branches
Archived branches
Once feature-branches are merged or declined, they are no longer available. Their functionality (when merged) can be viewed from the main output page
- 2022-12-01 RFC: Property hooks - included in PHP 8.4
- 2020-03-21 RFC: Is_Literal - declined
- 2020-12-04 Enumerations - included in PHP 8.1
- 2018-06-15 Typed Properties v2 - implemented in PHP 7.4
- 2016-08-12 Object typehint - included in PHP 7.2
- 2016-08-14 Arrow functions - withdrawn
- 2016-05-29 array_change_keys() - withdrawn
- 2016-04-19 Lexical scope support for anonymous classes - suspended
- 2016-04-17 Functional Interfaces - declined
- 2016-03-16 Typed Properties - superseded in favor of Typed Properties 2.0
- 2015-08-27 Callable Prototypes - declined
- 2015-05-01 Short Closures - declined / withdrawn in favor of Arrow Functions
- 2015-02-18 Scalar type hints v5 - included in PHP 7
- 2015-02-14 Union Types - declined
- 2013-09-22 Anonymous classes - included in PHP 7