Skip to content

Instantly share code, notes, and snippets.

@rotexdegba
Created May 26, 2015 21:45
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save rotexdegba/e80e33608f2726994f7c to your computer and use it in GitHub Desktop.
Save rotexdegba/e80e33608f2726994f7c to your computer and use it in GitHub Desktop.
PHP Script to Benchmark Memory Consumtion on Common Array / Object / String Memory Consumption
<?php
ini_set('memory_limit', '1024M');
function test(){
$index = 0;
//Case 1
$a = '';
for ($i=0; $i<1000000; $i++) $a .= '1';
echo "Case ".++$index.": ".number_format(memory_get_usage(true)/1048576, 2)."\n";
// 1.50 (php), 3.5 (hhvm), 1.50 (phpng)
//Case 2
$a = array();
for ($i=0; $i<1000000; $i++) $a[$i] = true;
echo "Case ".++$index.": ".number_format(memory_get_usage(true)/1048576, 2)."\n";
// 138.25 (php), 30.4 (hhvm), 32.75 (phpng)
//Case 3
$a = new stdclass;
for ($i=0; $i<1000000; $i++) $a->$i = true;
echo "Case ".++$index.": ".number_format(memory_get_usage(true)/1048576, 2)."\n";
// 146.25 (php), 80.92 (hhvm), 82.50 (phpng)
//Case 4
$a = new SplFixedArray(1000000);
for ($i=0; $i<1000000; $i++) $a[$i] = true;
echo "Case ".++$index.": ".number_format(memory_get_usage(true)/1048576, 2)."\n";
// 54.25 (php), 30.56 (hhvm), 16.50 (phpng)
//Case 5
$a = array();
for ($i=0; $i<1000000; $i++) $a[$i] = $i;
echo "Case ".++$index.": ".number_format(memory_get_usage(true)/1048576, 2)."\n";
// 138.50 (php), 30.56 (hhvm), 33.25 (phpng)
//Case 6
$a = new stdclass;
for ($i=0; $i<1000000; $i++) $a->$i = $i;
echo "Case ".++$index.": ".number_format(memory_get_usage(true)/1048576, 2)."\n";
// 146 (php), 80.97 (hhvm), 82.50 (phpng)
//Case 7
$a = new SplFixedArray(1000000);
for ($i=0; $i<1000000; $i++) $a[$i] = $i;
echo "Case ".++$index.": ".number_format(memory_get_usage(true)/1048576, 2)."\n";
// 54.25 (php), 30.58 (hhvm), 16.75 (phpng)
//Case 8
$a = array();
for ($i=0; $i<1000000; $i++) $a[$i] = (string)$i;
echo "Case ".++$index.": ".number_format(memory_get_usage(true)/1048576, 2)."\n";
// 230 (php), 61.10 (hhvm), 78.50 (phpng)
//Case 9
$a = new stdclass();
for ($i=0; $i<1000000; $i++) $a->$i = (string)$i;
echo "Case ".++$index.": ".number_format(memory_get_usage(true)/1048576, 2)."\n";
// 237.75 (php), 111.50 (hhvm), 128.25 (phpng)
//Case 10
$a = new SplFixedArray(1000000);
for ($i=0; $i<1000000; $i++) $a[$i] = (string)$i;
echo "Case ".++$index.": ".number_format(memory_get_usage(true)/1048576, 2)."\n";
// 145.5 (php), 61.11 (hhvm), 61.75 (phpng)
//Case 11
$a = array();
for ($i=0; $i<1000000; $i++) $a[(string)$i] = (string)$i;
echo "Case ".++$index.": ".number_format(memory_get_usage(true)/1048576, 2)."\n";
// 230 (php), 61.12 (hhvm), 78.50 (phpng)
//Case 12
$a = array();
for ($i=0; $i<1000000; $i++) $a[$i] = "";
echo "Case ".++$index.": ".number_format(memory_get_usage(true)/1048576, 2)."\n";
// 138.5 (php), 30.62 (hhvm), 33.75 (phpng)
//Case 13
$a = new stdclass;
for ($i=0; $i<1000000; $i++) $a->$i = "";
echo "Case ".++$index.": ".number_format(memory_get_usage(true)/1048576, 2)."\n";
// 146 (php), 81.02 (hhvm), 82.50 (phpng)
//Case 14
$a = new SplFixedArray(1000000);
for ($i=0; $i<1000000; $i++) $a[$i] = "";
echo "Case ".++$index.": ".number_format(memory_get_usage(true)/1048576, 2)."\n";
// 54 (php), 30.63 (hhvm), 17.00 (phpng)
//Case 15
$a = array();
for ($i=0; $i<1000000; $i++) $a[$i] = "hello";
echo "Case ".++$index.": ".number_format(memory_get_usage(true)/1048576, 2)."\n";
// 138.5 (php), 30.64 (hhvm), 33.75 (phpng)
//Case 16
$a = new stdclass;
for ($i=0; $i<1000000; $i++) $a->$i = "hello";
echo "Case ".++$index.": ".number_format(memory_get_usage(true)/1048576, 2)."\n";
// 146 (php), 81.04 (hhvm), 82.50 (phpng)
//Case 17
$a = new SplFixedArray(1000000);
for ($i=0; $i<1000000; $i++) $a[$i] = "hello";
echo "Case ".++$index.": ".number_format(memory_get_usage(true)/1048576, 2)."\n";
// 54 (php), 30.65 (hhvm), 17.25 (phpng)
//Case 18
$a = array();
for ($i=0; $i<1000000; $i++) $a[$i] = array();
echo "Case ".++$index.": ".number_format(memory_get_usage(true)/1048576, 2)."\n";
// 222.5 (php), 30.65 (hhvm), 34.00 (phpng)
//Case 19
$a = new stdclass;
for ($i=0; $i<1000000; $i++) $a->$i = array();
echo "Case ".++$index.": ".number_format(memory_get_usage(true)/1048576, 2)."\n";
// 230 (php), 81.05 (hhvm), 82.50 (phpng)
//Case 20
$a = new SplFixedArray(1000000);
for ($i=0; $i<1000000; $i++) $a[$i] = array();
echo "Case ".++$index.": ".number_format(memory_get_usage(true)/1048576, 2)."\n";
// 138 (php), 30.66 (hhvm), 17.50 (phpng)
//Case 21
$a = array();
for ($i=0; $i<500000; $i++) $a[$i] = array("");
echo "Case ".++$index.": ".number_format(memory_get_usage(true)/1048576, 2)."\n";
// 214.75 (php), 18.67 (hhvm), 18.25 (phpng)
//Case 22
$a = new stdclass;
for ($i=0; $i<500000; $i++) $a->$i = array("");
echo "Case ".++$index.": ".number_format(memory_get_usage(true)/1048576, 2)."\n";
// 218.25 (php), 41.81 (hhvm), 41.75 (phpng)
//Case 23
$a = new SplFixedArray(1000000);
for ($i=0; $i<500000; $i++) $a[$i] = array("");
echo "Case ".++$index.": ".number_format(memory_get_usage(true)/1048576, 2)."\n";
// 176.00 (php), 30.68 (hhvm), 17.50 (phpng)
//Case 24
$a = array();
for ($i=0; $i<500000; $i++) $a[$i] = array("hello");
echo "Case ".++$index.": ".number_format(memory_get_usage(true)/1048576, 2)."\n";
// 214.50 (php), 18.68 (hhvm), 18.25 (phpng)
//Case 25
$a = new stdclass;
for ($i=0; $i<500000; $i++) $a->$i = array("hello");
echo "Case ".++$index.": ".number_format(memory_get_usage(true)/1048576, 2)."\n";
// 218.25 (php), 41.82 (hhvm), 41.75 (phpng)
//Case 26
$a = new SplFixedArray(1000000);
for ($i=0; $i<500000; $i++) $a[$i] = array("hello");
echo "Case ".++$index.": ".number_format(memory_get_usage(true)/1048576, 2)."\n";
// 176 (php), 30.69 (hhvm), 17.50 (phpng)
}
test();
?>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment