【发布时间】:2016-12-12 03:32:54
【问题描述】:
显然,如果我将exit; 放在index.php 的末尾,对我的 CodeIgniter 应用程序的请求最多可以节省 300ms。
/*
* --------------------------------------------------------------------
* LOAD THE BOOTSTRAP FILE
* --------------------------------------------------------------------
*
* And away we go...
*/
require_once BASEPATH.'core/CodeIgniter.php';
/* End of file index.php */
/* Location: ./index.php */
exit; // <~~ save me ~300ms request time, from ~900ms to ~600ms
我知道,这很奇怪,我想不出任何合理的解释。我正在寻找答案并尝试在孤立的环境中重现该行为。但同时,如果有任何我不知道的明显原因,我想问一下......
如果我把exit退出会有什么危害吗?在 CodeIgniter 3.0 中 index.php 的末尾?
【问题讨论】:
-
如果它节省时间,这可能意味着代码在您的主文件完成后执行。这取决于额外代码的作用。
-
您对我如何找到“额外代码”有什么建议吗?
-
AFAIK,php代码是同步的,这个index.php是每个请求去的第一个脚本,所以“额外代码”必须是多线程或主进程创建的子进程脚本?是对的吗?我不记得在我的脚本中使用过任何这些。是否有任何常见的 php 内置方法导致此问题?我可以使用 XDebug 来查看“额外代码”吗?
-
您是否考虑过关闭 xdebug 扩展并再次测试它?如果我在 Windows 机器上执行此操作 - 所有 php 脚本都运行得更流畅、更快 - 我问这个是因为你的退出是文件的结尾。在你的一个视图中写下'
Rendertime:benchmark->elapsed_time();?>
' 并查看@the execution time with and without your exit 并在此处发布你的结果 -
@sintakonte 你是对的,它是 Xdebug。所以这就是为什么我无法看到使用 Xdebug 的原因,哈哈。
标签: php multithreading codeigniter exit