Heim >Backend-Entwicklung >PHP-Tutorial >memory_get_usage获取当前PHP内存消耗量的例子

memory_get_usage获取当前PHP内存消耗量的例子

WBOY
WBOYOriginal
2016-07-25 08:56:371083Durchsuche
  1. echo memory_get_usage();
  2. $var = str_repeat("phpzixue.cn", 10000);
  3. echo memory_get_usage();
  4. unset($var);
  5. echo memory_get_usage();
  6. ?>
复制代码

输出:62328 122504 62416 说明:memory_get_usage()函数输出的数值为bytes单位

2,格式化memory_get_usage()输出

  1. function convert($size){
  2. $unit=array('b','kb','mb','gb','tb','pb');
  3. return @round($size/pow(1024,($i=floor(log($size,1024)))),2).' '.$unit[$i];
  4. }
  5. echo convert(memory_get_usage(true));
  6. ?>
复制代码

输出:256 kb

3,自定义函数获取数组或变量值大小

  1. function array_size($arr) {
  2. ob_start();
  3. print_r($arr);
  4. $mem = ob_get_contents();
  5. ob_end_clean();
  6. $mem = preg_replace("/\n +/", "", $mem);
  7. $mem = strlen($mem);
  8. return $mem;
  9. }
  10. $memEstimate = array_size($GLOBALS);
  11. ?>
复制代码

说明: 要减少内存的占用,可以使用 PHP unset() 函数把不再需要使用的变量删除。 类似函数:PHP mysql_free_result() 函数,可以清空不再需要的查询数据库得到的结果集,这样也能得到更多可用内存。

PHP memory_get_usage()还可以有个参数,$real_usage,其值为布尔值。默认为 FALSE,表示得到的内存使用量不包括该函数(PHP 内存管理器)占用的内存; 当设置为 TRUE 时,得到的内存为包括该函数(PHP 内存管理器)占用的内存。

在php编程中,可以使用PHP memory_get_usage()比较各个方法占用内存的高低,然后选择性能较好的方法。



Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn