<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Domety &#187; 内存</title>
	<atom:link href="http://domety.com/archives/tag/%e5%86%85%e5%ad%98/feed/" rel="self" type="application/rss+xml" />
	<link>http://domety.com</link>
	<description>分享软件、互联网应用技巧以及开发技能</description>
	<lastBuildDate>Fri, 03 Feb 2012 14:02:27 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>查看页面执行php占用内存情况</title>
		<link>http://domety.com/archives/208/</link>
		<comments>http://domety.com/archives/208/#comments</comments>
		<pubDate>Sat, 02 Jan 2010 14:00:01 +0000</pubDate>
		<dc:creator>DDBug</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[内存]]></category>

		<guid isPermaLink="false">http://domety.com/?p=208</guid>
		<description><![CDATA[今天头脑一热，想看一下页面在执行的过程中占用了多少内存，我也不知道这样做的目的是什么，可能是出于我的惯性思维吧。不过这样做也不是完全没用，你可以清楚的知道哪些页面占用的内存比较多，特别是对于使用共用主机的网站，一般空间商都会限制每个网站的资源占用情况的（包括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函数即可
&#60;?php printf(' memory usage: %01.2f MB', memory_get_usage()/1024/1024); ?&#62;
该语句的输出以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，从而可以看出那段代码对内存的影响。
]]></description>
			<content:encoded><![CDATA[<p>今天头脑一热，想看一下页面在执行的过程中占用了多少内存，我也不知道这样做的目的是什么，可能是出于我的惯性思维吧。不过这样做也不是完全没用，你可以清楚的知道哪些页面占用的内存比较多，特别是对于使用共用主机的网站，一般空间商都会限制每个网站的资源占用情况的（包括cpu和内存）。万一在我们不知道的情况下，经常占用太多的内存，你愿意，空间商可不同意了。当然这种情况是很少出现的。<span id="more-208"></span></p>
<h3>memory_get_usage</h3>
<p>php提供了一个查看分配的内存大小的函数memory_get_usage，原型如下</p>
<pre>int memory_get_usage ([ bool $real_usage = false ] )</pre>
<p>$real_usage为可选参数，默认为false(即不包括memory_get_usage本身占用的内存)，memory_get_usage(true)可查看包括memory_get_usage在内的内存占用情况。</p>
<p>该函数默认返回的是占用内存的字节数，我们可以通过除以1024来以KB为单位，再除以1024以MB为单位。</p>
<h3>使用方法</h3>
<p>对于wordpress,我们只需要在主题文件夹下的footer.php文件调用memory_get_usage函数即可</p>
<pre>&lt;?php printf(' memory usage: %01.2f MB', memory_get_usage()/1024/1024); ?&gt;</pre>
<p>该语句的输出以MB为单位，小数点后保留2位。具体效果可以参看本站的底部。</p>
<h3>题外话</h3>
<p>当然，如果你想做一个详细的测试，可以在页面代码执行之前、模板调用之前以及页面代码执行完毕之后分别调用该函数以做对比，以下是我做的测试：</p>
<p>一、在页面代码执行之前调用memory_get_usage，即在根目录下的index.php文件的最开始部分加入上面的代码，结果在0.3M左右。</p>
<p>二、在模板调用之前，即在主题文件夹下的header.php文件的最开始部分调用memory_get_usage，结果在11M左右。说明wordpress在调用模板之前已经加载了大量的数据。</p>
<p>三、在页面代码执行完毕之后，即在主题文件夹下的footer.php文件的最后部分调用memory_get_usage，结果因页面的不同而不同，不过也都差不多在12M以下。说明主题本身的php调用没有占用多少内存。如果这个结果很高的话，就要检查一下你的主题文件了。</p>
<p>以上结果因为主机的不同而不同，因wordpress的不同而不同，因主题的不同而不同，因各种因素的不同而不同……仅做参考。</p>
<p>另外，如果你想测试某段代码执行后的内存使用情况，可以在代码执行之前和执行之后分别调用memory_get_usage，从而可以看出那段代码对内存的影响。</p>
]]></content:encoded>
			<wfw:commentRss>http://domety.com/archives/208/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
	</channel>
</rss>

