gpt4 book ai didi

php - PHP max_execution_time 是如何工作的?

转载 作者:IT王子 更新时间:2023-10-29 00:20:57 28 4
gpt4 key购买 nike

我对 php.ini 中设置的最大执行时间几乎没有怀疑。

假设 max_execution_time 为 3 分钟,请考虑以下情况:

  1. 我有一个将在 2 分钟内结束的流程。

    但它在一个循环中,它应该工作 5 次。所以它变成了10分钟。

    脚本是否会正常运行而不显示超时错误?为什么?

  2. PHP 函数仅打印数据,仅需 2 分钟。

    但是查询执行需要 5 分钟。

    脚本能正常运行吗?为什么?

  3. 我的单个 php 进程本身需要 5 分钟。

    但是我是从命令行调用脚本的。

    它会正常工作吗?为什么?

  4. 允许的内存和执行时间有什么关系?

    如果脚本的执行时间非常长

    但是返回的数据量很小

    会不会影响内存?为什么?

我想了解内部发生的事情,这就是我问这些问题的原因。我不想只增加时间限制和内存限制。

最佳答案

max_execution_time 的规则相对简单。

  • 执行时间在文件被解释时开始计算。准备请求、准备上传文件、网络服务器执行其操作等之前所需的时间不计入执行时间。

  • 执行时间是脚本运行的总时间,包括数据库查询,无论它是否在循环中运行。因此,在第一种和第二种情况下,脚本将因超时错误而终止,因为这是 max_execution_time 的定义行为。

  • 使用 exec() 的外部系统调用等计入执行时间,Windows 除外。 ( Source ) 这意味着您可以运行比 max_execution_time 更长的外部程序。

  • 从命令行调用时,max_execution_time 默认为 0。 ( Source ) 因此在第三种情况下,您的脚本应该可以正常运行。

  • 执行时间和内存使用没有任何关系。脚本可以运行数小时而不会达到内存限制。如果是这样,则通常是由于未取消设置变量的循环,以及未正确释放之前保留的内存。

关于php - PHP max_execution_time 是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4220413/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com