Skip to content

Instantly share code, notes, and snippets.

@vensires
Created August 2, 2016 10:31
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 vensires/d2d34b1bbdec99e7c522333d7c620070 to your computer and use it in GitHub Desktop.
Save vensires/d2d34b1bbdec99e7c522333d7c620070 to your computer and use it in GitHub Desktop.
PHP: Memory consumption in different scenarios by counting memory used by PHP but not allocated to PHP
<?php
/**
* The following code uses 735992 bytes = 735.99200 kilobytes
*/
print memory_get_usage(FALSE);
$limit = 1;
for($i = 0; $i < $limit; $i++) {
$func = 'hello_' . $i;
$$func = function() {
};
}
print "\n";
// We don't execute the anonymous function.
print memory_get_usage(FALSE);
?>
<?php
/**
* The following code uses 758432 bytes = 758.43200 kilobytes
*/
print memory_get_usage(FALSE);
$limit = 1;
for($i = 0; $i < $limit; $i++) {
$func = 'hello_' . $i;
$$func = function() {
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
$value = 'test';
return $value;
};
}
print "\n";
// We don't execute the anonymous function.
print memory_get_usage(FALSE);
?>
<?php
/**
* The following code uses 737120 bytes = 737.12 kilobytes
*/
print memory_get_usage(FALSE);
$limit = 1;
for($i = 0; $i < $limit; $i++) {
$func = 'hello_' . $i;
$$func = function() {
/**
* helloworld2.php contains a simple helloworld2() function
* containing the exact same code of the anonymous function as
* found in scenario2.php.
*/
require_once 'helloworld2.php';
$value = helloworld2();
return $value;
};
}
print "\n";
// We don't execute the anonymous function.
print memory_get_usage(FALSE);
<?php
/**
* The following code uses 760648 bytes = 760.64800 kilobytes
*/
print memory_get_usage(FALSE);
$limit = 1;
for($i = 0; $i < $limit; $i++) {
$func = 'hello_' . $i;
$$func = function() {
/**
* helloworld2.php contains a simple helloworld2() function
* containing the exact same code of the anonymous function as
* found in scenario2.php.
*/
require_once 'helloworld2.php';
$value = helloworld2();
return $value;
};
}
print "\n";
// We execute the anonymous function.
$$func();
print memory_get_usage(FALSE);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment