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
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为单位。
$mem=memory_get_usage();
// … 执行代码 …
echo (memory_get_usage()-$mem)/1024;
—————————-分割线——————————————————————-
PHP计算代码执行耗时的方法:
$t1 = microtime(true);
// … 执行代码 …
$t2 = microtime(true);
echo ‘used ‘.round($t2-$t1,3).’seconds’;
microtime() 如果带个 true 参数, 返回的将是一个浮点类型. 这样 t1 和 t2 得到的就是两个浮点数, 相
减之后得到之间的差. 由于浮点的位数很长, 或者说不确定, 所以再用个 round() 取出小数点后 3 位.
—————————-分割线———————————————————————
PHP页面消耗的最大内存默认是为 8M (在PHP的ini件里可以看到) ,如果文件太大 或图片太大 在读取的时候
会发生错误。解决办法:
1,修改 php.ini
将memory_limit由 8M 改成 16M或更大,重启apache服务
2,在PHP 文件中 加入 ini_set(”memory_limit”,”16M”);
注意:为了系统的其它资源的正常使用 请您不要将 memory_limit设置太大,其中-1为不限
3,修改.htaccess 文档(前提是该目录支持.htaccess)
在文档中新增一句:php_value memory_limit 16M或更大
PHP大批量数据操作时也可以临时调整内存与执行时间,那就不用修改php.ini参数了。
ini_set(‘memory_limit’, ’250M’); //内存限制
set_time_limit(0); //时间限制
—————————-分割线——————————————————————-
职业生涯马拉松,不着急,保持节奏即可。
找准目标,享受过程,消费结果,然后重新找目标。
原文地址:PHP代码的执行时间与内存消耗问题小结, 感谢原作者分享。