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

Result: Saved

The test labeled "integer" was the faster by 0.0008 seconds, (0.067% faster)

integer 100%
string 99.933%

The integer test took 1.1646 seconds.
The string test took 1.1654 seconds.

Nitty-Gritty

Each test case ran 20 random code order iterations consisting of 284,987 loops for a total of 5,699,740 runs.

  • Line execution difference (0.000000) milliseconds.
  • Avg difference (0.039) milliseconds per 284,987 loops.
  • Total difference 0.78 milliseconds for 5,699,740 loops

The iteration variablity for Code 1 was (3.8387) milliseconds and Code 2 was (3.7582) 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)