欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  php教程

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

程序员文章站 2022-05-19 21:17:53
...

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

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

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

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