gpt4 book ai didi

php - 设置自定义错误处理程序会大大增加脚本执行时间

转载 作者:行者123 更新时间:2023-12-03 07:55:58 24 4
gpt4 key购买 nike

我在生产环境中有一个脚本-电子商务结帐页面-过去曾出现过一些错误,导致该脚本无法正常工作并花了我很多钱。我想得到有关错误的通知,所以我做了以下工作:

<?php
function mailErrorHandler($errno, $errstr)
{
echo "<!--PHP ERROR:";
echo "---[$errno] $errstr ---";
echo "-->";
error_log("Error: [$errno] $errstr",1,
"myemail@myserver.com","From: me@workserver.com");
}

set_error_handler("mailErrorHandler",E_ALL);

echo 1-thisisnotanumber;

?>

当我在它自己的脚本中按原样使用它时,它可以工作并快速执行。但是,当我将其添加到现有应用程序中时,页面加载时间会明显降低,即减少40秒,而不是<1秒。谁能想到这可能发生的原因?

最佳答案

如果您有大量流量,并且引发了很多错误,则写入日志可能会导致大量磁盘IO。这可能会使您的应用减慢速度。

也许您抛出的不是错误,而是一堆Notice“exceptions”。如果将它们设置为不显示(大多数PHP版本中的默认设置),并且不知所措,则可能会多次运行错误处理程序。每次运行处理程序时,它都必须进行跟踪,突破当前范围,进行各种处理,并且如果这一切都发生是因为您正在PHP 5.3中使用=& new或尝试访问未定义的数组元素(或任何其他常见通知),您将看到这些延迟。

因此,为了解决此问题,医生会规定关闭测试服务器上的错误处理程序,打开通知显示,运行流程并记下任何错误/通知/等,然后在您的生产中修复上述通知框。

希望这可以帮助!

关于php - 设置自定义错误处理程序会大大增加脚本执行时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1709020/

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