2025-06-23 23:06:42
大家好,今天小编关注到一个比较有意思的话题,就是关于php 执行时间的问题,于是小编就整理了2个相关介绍php 执行时间的解答,让我们一起看看吧。
startTime = microtime(true); //将获取的时间赋值给成员属性$startTime}//脚本结束处嗲用脚本结束的时间微秒值function stop(){$this->stopTime = microtime(true); //将获取的时间赋给成员属性$stopTime}//返回同一脚本中两次获取时间的差值function spent(){//计算后4舍5入保留4位返回return round(($this->stopTime-$this->startTime),4);}} $timer= new Timer();$timer->start(); //在脚本文件开始执行时调用这个方法usleep(1000); //脚本的主题内容,这里可以休眠一毫秒为例$timer->stop(); //在脚本文件结束处调用这个方法 echo "执行该脚本用时
".$timer->spent()."
PHP的执行分三个阶段:
处理请求的开始阶段、处理请求阶段、请求之后的结束阶段。
处理请求的开始阶段:
1 模块初始化阶段(MINIT),在整个SAPI生命周期内(例如Apache启动以后的整个生命周期内或者命令行程序整个执行过程中),该过程只进行一次。(这应该就是为何修改了php.ini之后,要重启Apache的原因);
PHP_MINIT_FUNCTION(extension_name){
/* Initialize functions, classes etc */
}
2 请求初始化阶段(RINIT),该过程发生在请求阶段, 例如通过url请求某个页面,则在每次请求之前都会进行模块激活。(为何不先激活呢?因为方便模块在RINIT阶段针对各种请求设置环境变量或其他的操作);
PHP_RINIT_FUNCTION(extension_name) {
/* Initialize session variables, pre-populate variables, redefine global variables etc */
}
处理请求阶段:
1 词法分析:将php文件翻译成一个个的token;
2 语法分析:根据生成的token和语法规则进行分析;
3 Zend引擎:将代码编译为opcode后并执行,在执行的过程中还会重复进行编译-执行,例如执行了include语句 (为何不在第一次编译就把这些包含进来的文件也一起编译好?);
4 调用SAPI的输出函数返回执行结果。
处理请求的结束阶段:
1 关闭请求:RSHUTDOWN对应于RINIT,释放资源等操作
2 关闭模块:MSHUTDOWN对应于MINIT,SAPI生命周期结束(Web服务器退出或者命令行脚本执行完毕退出)
PHP_RSHUTDOWN_FUNCTION(extension_name) {
/* Do memory management, unset all variables used in the last PHP call etc */
}
PHP_MSHUTDOWN_FUNCTION(extension_name) {
/* Free handlers and persistent memory etc */
}
到此,以上就是小编对于php 执行时间的问题就介绍到这了,希望介绍关于php 执行时间的2点解答对大家有用。
Copyright © 2005-2025 代潇瑞博客 www.daixiaorui.com All Rights Reserved.
免责声明: 1、本站部分内容系互联网收集或编辑转载,并不代表本网赞同其观点和对其真实性负责。 2、本页面内容里面包含的图片、视频、音频等文件均为外部引用,本站一律不提供存储。 3、如涉及作品内容、版权和其它问题,请在30日内与本网联系,我们将在第一时间删除或断开链接! 4、本站如遇以版权恶意诈骗,我们必奉陪到底,抵制恶意行为。 ※ 有关作品版权事宜请联系客服邮箱:478923*qq.com(*换成@)
渝ICP备2023009091号-21