查看页面执行php占用内存情况
今天头脑一热,想看一下页面在执行的过程中占用了多少内存,我也不知道这样做的目的是什么,可能是出于我的惯性思维吧。不过这样做也不是完全没用,
你可以清楚的知道哪些页面占用的内存比较多,特别是对于使用共用主机的网站,一般空间商都会限制每个网站的资源占用情况的(包括cpu和内存)。万一在我
们不知道的情况下,经常占用太多的内存,你愿意,空间商可不同意了。当然这种情况是很少出现的。
memory_get_usage
php提供了一个查看分配的内存大小的函数memory_get_usage,原型如下
int memory_get_usage ([ bool $real_usage = false ] )
$real_usage为可选参数,默认为false(即不包括memory_get_usage本身占用的内存),memory_get_usage(true)可查看包括memory_get_usage在内的内存占用情况。
该函数默认返回的是占用内存的字节数,我们可以通过除以1024来以KB为单位,再除以1024以MB为单位。
使用方法
对于wordpress,我们只需要在主题文件夹下的footer.php文件调用memory_get_usage函数即可
<?php printf(‘ memory usage: %01.2f MB’, memory_get_usage()/1024/1024); ?>
该语句的输出以MB为单位,小数点后保留2位。具体效果可以参看本站的底部。
题外话
当然,如果你想做一个详细的测试,可以在页面代码执行之前、模板调用之前以及页面代码执行完毕之后分别调用该函数以做对比,以下是我做的测试:
一、在页面代码执行之前调用memory_get_usage,即在根目录下的index.php文件的最开始部分加入上面的代码,结果在0.3M左右。
二、在模板调用之前,即在主题文件夹下的header.php文件的最开始部分调用memory_get_usage,结果在11M左右。说明wordpress在调用模板之前已经加载了大量的数据。
三、在页面代码执行完毕之后,即在主题文件夹下的footer.php文件的最后部分调用memory_get_usage,结果因页面的不同而不
同,不过也都差不多在12M以下。说明主题本身的php调用没有占用多少内存。如果这个结果很高的话,就要检查一下你的主题文件了。
以上结果因为主机的不同而不同,因wordpress的不同而不同,因主题的不同而不同,因各种因素的不同而不同……仅做参考。
另外,如果你想测试某段代码执行后的内存使用情况,可以在代码执行之前和执行之后分别调用memory_get_usage,从而可以看出那段代码对内存的影响。
相关文档:
<?PHP
/**
* patServer
* PHP socket server base class
* Events that can be handled:
* * onStart
* * onConnect
* * onConnectionRefused
* * onClose
* * onShutdown
* * onReceiveData
*
* @version 1.1
* @author &n ......
1、社团简介:
LAMP兄弟连社团(简称兄弟连)是易第优教育学院领导下的社团组织,是学院联系广大LAMP爱好者的桥梁和纽带,是学院社团管理协调的机构。
2、社团性质:
由LAMP兄弟连发起(www.lampbrother.net)的全国专业性、公益性社会沙龙组织。
3、社团目的:
a、为爱好LAMP的朋友们搭建一个学习交流的平台
b、为 ......
以前只弄过asp,最近有点兴趣来学下php,发现php比asp不是一般的功能强大。
刚开始偷了下懒,没有去php官网看帮助,英文的虽然看起来不难,但是还是习惯看中文,于是搜索了几篇有关php在iis上安装的文章,按照这些文章上的说明开始配置php。我就顶它个肺,配置起来问题千奇百怪,折腾了两天,也郁闷了两天。
得,索性看官 ......
<?php
/*
* 名称 : MySQL数据库基本操作
* 作者 : pjx
* 版本 : v 2010/02/25 v 1.0
* 说明 : 该类用于对MySQL做一些简单的操作
* 示例 :
* 实例 => $db = new DB_MYSQL($database),打个$database数据库
* 查询数据库 => $db->query($sql_str),查询$sql_st ......
<?php
include_once("error.php");
/*
* 名称 : PHP去源码注释及轻度压缩数据
* 作者 : pjx
* 版本 : v 2010/02/25 v 1.0
* 说明 : 该类用于清除PHP文件(同时兼容C/C++风格注释的文件)源码的注释及去除多余空格
* 示例 :
* 实例 => $data = new REMOVE_COMMENT($file_p ......