注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

phperwuhan的博客

记载一个phper的历程!phperwuhan.blog.163.com

 
 
 

日志

 
 

查看页面执行php占用内存情况  

2010-06-13 17:36:44|  分类: php |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

来源:http://domety.com/archives/208/

今天头脑一热,想看一下页面在执行的过程中占用了多少内存,我也不知道这样做的目的是什么,可能是出于我的惯性思维吧。不过这样做也不是完全没用,你可以清楚的知道哪些页面占用的内存比较多,特别是对于使用共用主机的网站,一般空间商都会限制每个网站的资源占用情况的(包括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,从而可以看出那段代码对内存的影响。

  评论这张
 
阅读(1974)| 评论(1)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017