首頁 >php教程 >php手册 >PHP代码的执行时间与内存消耗问题小结

PHP代码的执行时间与内存消耗问题小结

WBOY
WBOY原創
2016-06-06 20:14:201108瀏覽

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); //时间限制

—————————-分割线——————————————————————-

职业生涯马拉松,不着急,保持节奏即可。

找准目标,享受过程,消费结果,然后重新找目标。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn