PHP Benchmarks

Performance comparison of PHP code alternatives.

Test: integer vs. string keys

Note that integers are being accessed as integers, strings as strings. This is not testing auto-casting, just which is faster when used consistently.

View test history (10) Run this test again Return to test menu

Result: Discarded

The test labeled "string" was the faster by 0.0274 seconds, (3.434% faster)

string 100%
integer 96.566%

The string test took 0.7715 seconds.
The integer test took 0.799 seconds.

Nitty-Gritty

Each test case ran 20 random code order iterations consisting of 181,728 loops for a total of 3,634,560 runs.

  • Line execution difference (0.000008) milliseconds.
  • Avg difference (1.372) milliseconds per 181,728 loops.
  • Total difference 27.44 milliseconds for 3,634,560 loops

The iteration variablity for Code 1 was (6.9063) milliseconds and Code 2 was (5.7457) milliseconds. The lower and the closer together there values are the more accurate the results are.

Code

The first test, "integer", was:

$GLOBALS['dummy_i'][42] = 1;
$GLOBALS['dummy_i'][43] = 1;

$GLOBALS['dummy2'] = $GLOBALS['dummy_i'][42];
$GLOBALS['dummy2'] = $GLOBALS['dummy_i'][43];

unset($GLOBALS['dummy_i'][42]);
unset($GLOBALS['dummy_i'][43]);

The second test, "string", was:

$GLOBALS['dummy_s']['s42'] = 1;
$GLOBALS['dummy_s']['s43'] = 1;

$GLOBALS['dummy2'] = $GLOBALS['dummy_s']['s42'];
$GLOBALS['dummy2'] = $GLOBALS['dummy_s']['s43'];

unset($GLOBALS['dummy_s']['s42']);
unset($GLOBALS['dummy_s']['s43']);

Running: Linux (x86_64:1 GB) PHP (7.2.22-1+ubuntu16.04.1+deb.sury.org+1)