PHP获得内存使用状态memory_get_usage()函数

在php中为你提供memory_get_usage函数,可以检查到你服务器当前所使用的内存情况,有了这个函数我们可以实时的检查服务器状态了,下面我来介绍memory_get_usage用法,格式化memory_get_usage()输出,代码如下:

  1. <?php
  2. function convert($size){
  3. $unit=array('b','kb','mb','gb','tb','pb');
  4. return @round($size/pow(1024,($i=floor(log($size,1024)))),2).' '.$unit[$i];
  5. }
  6. echo convert(memory_get_usage(true));
  7. ?>
  8. //输出:256 kb

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

例代码如下:

  1. if (!function_exists('memory_get_usage'))
  2. {
  3. function memory_get_usage()
  4. {
  5. $pid = getmypid();
  6. if (IS_WIN)
  7. {
  8. exec('tasklist /FI "PID eq ' . $pid . '" /FO LIST', $output);
  9. return preg_replace('/[^0-9]/', '', $output[5]) * 1024;
  10. }
  11. else
  12. {
  13. exec("ps -eo%mem,rss,pid | grep $pid", $output);
  14. $output = explode(" ", $output[0]);
  15. return $output[1] * 1024;
  16. }
  17. }
  18. }