php最大执行时间实际测量的是什么?
我有一个网页,上面有一个按钮,当点击它时,执行一个php函数 当用户单击它时,返回页面需要51081毫秒。其中51376ms被我的Firefox开发者工具中的“网络”选项卡归类为“等待” 在我的php.ini文件中声明的最大执行时间是30。我也可以在我的phpinfo文件中看到这一点 我的问题是,为什么我的脚本在30秒后没有超时?实际测量的最大执行时间是多少 编辑以包含代码php最大执行时间实际测量的是什么?,php,max-execution-timeout,Php,Max Execution Timeout,我有一个网页,上面有一个按钮,当点击它时,执行一个php函数 当用户单击它时,返回页面需要51081毫秒。其中51376ms被我的Firefox开发者工具中的“网络”选项卡归类为“等待” 在我的php.ini文件中声明的最大执行时间是30。我也可以在我的phpinfo文件中看到这一点 我的问题是,为什么我的脚本在30秒后没有超时?实际测量的最大执行时间是多少 编辑以包含代码 public function getSlotsByUser (Request $request) { $eve
public function getSlotsByUser (Request $request) {
$event_id = $request->event_id;
$user_id = substr($request->user, 4);
$event = Event::find($event_id);
$user = User::find($user_id);
$slots = TimeSlot::where('event_id',$event_id)->get();
$userSlots = $user->slots;
foreach($userSlots as $userSlot) {
$guest = Guest::where('slot_id',$userSlot->id)->where('user_id',$user->id)->first();
if($guest) {
$userSlot->guest_id = $guest->id;
$userSlot->guest_name = $guest->name . ' ' . $guest->surname;
}
else {
$userSlot->guest_id = NULL;
$userSlot->guest_name = NULL;
}
$userSlotIds[] = $userSlot->id;
}
$days = new DatePeriod(
new DateTime($event->start_time),
new DateInterval('P1D'),
(new DateTime($event->end_time))->modify('+1 day')
);
return view('admin.calendar',compact('event','slots','user','userSlots','userSlotIds','days'));
}
我知道哪些部分用雄辩的语言表示查询。我的代码也是如此
php执行
php执行
数据库查询
数据库查询
数据库查询
php执行。。。等等
有人能给我解释一下“引擎盖下”发生了什么吗?说:
最大执行时间仅影响脚本本身的执行时间。在确定脚本已运行的最长时间时,不包括在脚本执行之外发生的活动(如使用system()的系统调用、流操作、数据库查询等)上花费的任何时间。这在Windouws上是不正确的,因为测得的时间是真实的
因此,在Linux上,只计算用于执行php代码的时间
网络选项卡中的
等待
只是告诉您,到目前为止,您没有收到Web服务器的任何响应。您确定代码中没有调用设置时间限制
?是的,我绝对确定。谢谢,我已经展开了我的问题,因为我仍然不确定到底发生了什么。@jordan好的:Event::find
。。。都是数据库查询。我不知道有多少用户在$userSlots
中,但这些数据库查询可能总共从21376
ms到50000
ms。因此,php脚本的实际执行时间可能少于秒。您应该检查您使用的DB库是否有一些评测选项,以查看每个脚本发出多少查询以及它们总共持续多长时间;php执行,php执行,数据库查询,数据库查询,数据库查询,php执行?我的代码中真的有6个php执行吗?@jordan你不能把php执行数作为垃圾的数量。因为一方面,每个::where
调用在查询db之前和查询db之后执行更多的php代码行,您应该如何定义垃圾。想象一下,更像是你必须在家里做一些事情,而有人正在测量你需要的时间。大部分时间都发生在你的房子里(php),但有时你需要去硬件商店(db query)取东西,测量时间的人会在你离开房子的正门时暂停测量。