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

Result: Saved

The test labeled "string" was the faster by 0.0259 seconds, (5.510% faster)

string 100%
integer 94.49%

The string test took 0.4444 seconds.
The integer test took 0.4703 seconds.

Nitty-Gritty

Each test case ran 20 random code order iterations consisting of 103,429 loops for a total of 2,068,580 runs.

  • Line execution difference (0.000013) milliseconds.
  • Avg difference (1.296) milliseconds per 103,429 loops.
  • Total difference 25.91 milliseconds for 2,068,580 loops

The iteration variablity for Code 1 was (2.3129) milliseconds and Code 2 was (2.1836) 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.15-1+ubuntu16.04.1+deb.sury.org+1)