我得到了一个脚本,它创建了用户之间发送的消息的列表实现。一切正常,直到消息量增加到大约 77.000 条。
对于每条消息,都会创建一个对象,并且每个对象都有对下一个消息对象的引用。
我启用了错误报告并增加了内存限制 - 我没有收到任何错误并且 http 状态代码是 200 Ok,即使开发人员控制台告诉我请求失败。
如果您需要在同一个 PHP 脚本中处理 77 000 个对象 - 架构有问题,php 不是此类计算的正确选择(即使它在某些情况下可以处理)
要跟踪此特定错误,请尝试在 php.ini 中设置:
display_errors=1
display_startup_errors=1
error_reporting=-1
log_errors=1
memory_limit=to any reasonable value
max_input_time=to any reasonable value
max_execution_time=to any reasonable value
report_memleaks=1
error_log=writable path
考虑使用xdebug扩展
不要忘记在更改正确的 php.ini 后重新启动 apache(你可以为 apache 和 cli 使用不同的 php.ini)
检查您的代码中是否调用了任何 set_error_handler 或 set_exception_handler 函数
如果您已经验证这不是内存限制问题,这可能是 PHP 的限制......类似于这个问题: