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 (3) Run this test again Return to test menu

Result: Saved

The test labeled "integer" was the faster by 0.0936 seconds, (14.624% faster)

integer 100%
string 85.376%

The integer test took 0.5462 seconds.
The string test took 0.6398 seconds.

Nitty-Gritty

Each test case ran 20 random code order iterations consisting of 129,264 loops for a total of 2,585,280 runs.

  • Line execution difference (0.000036) milliseconds.
  • Avg difference (4.678) milliseconds per 129,264 loops.
  • Total difference 93.56 milliseconds for 2,585,280 loops

The iteration variablity for Code 1 was (4.1593) milliseconds and Code 2 was (4.1422) 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.34-21+ubuntu16.04.1+deb.sury.org+1)