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

格式化memory_get_usage()输出

 代码如下 复制代码

<?php
function convert($size){
$unit=array('b','kb','mb','gb','tb','pb');
return @round($size/pow(1024,($i=floor(log($size,1024)))),2).' '.$unit[$i];
}
echo convert(memory_get_usage(true));
?>

输出:256 kb

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

 代码如下 复制代码

if (!function_exists('memory_get_usage')) 

 {
     function memory_get_usage() 

     {

        $pid = getmypid();

       if (IS_WIN) 

       {

            exec('tasklist /FI "PID eq ' . $pid . '" /FO LIST', $output);

             return preg_replace('/[^0-9]/', '', $output[5]) * 1024;

         } 

         else

        {

           exec("ps -eo%mem,rss,pid | grep $pid", $output);

           $output = explode(" ", $output[0]);

           return $output[1] * 1024;

         }

    }

}

时间: 2024-11-14 11:25:23

PHP获得内存使用状态memory_get_usage()函数的相关文章

获取 PHP内存清耗量memory_get_usage函数用法

一,函数原型 int memory_get_usage  ([  bool $real_usage = false  ] ) 二,版本兼容 PHP 4 >= 4.3.2, PHP 5 三,基础用法与实例 1,获取当前的内存消耗量  代码如下 复制代码 <?php echo memory_get_usage(); $var = str_repeat("liuhui", 10000); echo memory_get_usage(); unset($var); echo mem

vb-VB检测打印机状态的函数总是返回空值?请问如何调用

问题描述 VB检测打印机状态的函数总是返回空值?请问如何调用 请教各位一个小问题: Public Function GetPrnStat(ByVal LptPort As String) As Long Dim PrnAddr As Long On Error Resume Next If IOStat = False Then IOStat = InitializeWinIo() If IOStat Then If UCase(LptPort) = "LPT1:" Then PrnA

在link中如何编写无状态的函数?什么又是无副作用的函数?两者是一回事么?

问题描述 在link中如何编写无状态的函数?什么又是无副作用的函数?两者是一回事么? 在link中如何编写无状态的函数?什么又是无副作用的函数?两者是一回事么? 解决方案 无状态的函数是指,给定输入,就能得到确定的输出,而和程序的状态无关. 无副作用是对外部来说的,调用函数,不会影响函数以外的变量.

增加一个判断内存变量存在的函数

变量|函数   笔者在开发应用系统中曾经用FoxPro的on error语句编写了一个判断内存变量的函数Exist(),非常方便实用,在此介绍给大家. 设计思路:先假设内存变量存在,然后将待判断的内存变量赋值给一个临时变量,若该内存变量不存在,则执行时必将出错,出错时将执行on error语句,只要在on error处理的函数中修改内存变量存在与否的标志即可.为了不影响调用程序的错误处理,保证该函数的通用性,在函数执行前后必须保存和恢复调用程序可能的错误处理. 源程序如下: ***EXISTP

一个查看内存数据的Delphi函数

unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; Button2: TButton; procedure Button1Click(Sender: TObject); procedure Button2Click(Se

linux网络编程之共享内存简介和mmap函数

一.共享内存简介 共享内存区是最快的IPC形式,这些进程间数据传递不再涉及到内核,换句话说是进程不再通 过执行进入内核的系统调用来传递彼此的数据. 即每个进程地址空间都有一个共享存储器的映射区,当这块区域都映射到相同的真正的物理地址空间时,可以通过这块 区域进行数据交换,例如共享库就是这么实现的,很多进程都会使用同一个函数如printf,也许在真正的物理地址空间中只 存在一份printf.o ,然后所有进程都映射到这一份printf.o 就实现了共享. 用管道或者消息队列传递数据: 用共享内存传

采用PHP函数memory_get_usage获取PHP内存清耗量的方法_php技巧

一,函数原型 int memory_get_usage ([ bool $real_usage = false ] ) 二,版本兼容 PHP 4 >= 4.3.2, PHP 5 三,基础用法与实例 1,获取当前的内存消耗量 复制代码 代码如下: <?php echo memory_get_usage(); $var = str_repeat("liuhui", 10000); echo memory_get_usage(); unset($var); echo memory

PHP通过内置函数memory_get_usage()获取内存使用情况_php技巧

PHP内置函数memory_get_usage()能返回当前分配给PHP脚本的内存量,单位是字节(byte).在WEB实际开发中,这些函数非常有用,我们可以使用它来调试PHP代码性能. memory_get_usage()函数返回内存使用量,memory_get_peak_usage()函数返回内存使用峰值,getrusage()返回CUP使用情况.但有一点请注意,在这些函数需要在Linux上运行. 下面我们来看一个实例: 复制代码 代码如下: echo '开始内存:'.memory_get_u

ipcs ipcrm 信号量(命令)+ 共享内存函数shmget、shmat、shmdt、shmctl

 unix/linux下的共享内存.信号量.队列信息管理,在unix/linux下,经常有因为共享内存.信号量,队列等共享信息没有干净地清楚而引起一些问题. 1.ipcs 和 ipcrm 命令实例 查看共享信息的内存的命令是ipcs [-m|-s|-q]. 默认会列出共享内存.信号量,队列信息,-m列出共享内存,-s列出共享信号量,-q列出共享队列 清除命令是ipcrm [-m|-s|-q] id. ipcrm可用来删除对应的共享内存段.信号量.消息队列:ipcrm本身只能实现单个资源的删除,利