gpt4 book ai didi

php - 没有捕获到异常时,php 5 try catches 会影响性能吗?

转载 作者:行者123 更新时间:2023-12-04 09:13:14 25 4
gpt4 key购买 nike

工作中的某个非常聪明的人告诉我, try catch 不抛出的捕获将影响拥有数百万用户的网站的性能。基于显示相同性能的单元测试,我想知道这是否与操作系统级别和/或 Web 服务器特定情况有关。例如,Web 服务器的异步工作实现发生在子进程而不是线程上。

有人知道吗?

我想看到的是显示实际使用的 cpu 时间的 php 分析器的输出。

jmucchiello 对 Performance of try-catch in php 的评论很有趣,但不测量使用的 CPU 时间。

谢谢,大卫

最佳答案

我进行了一个非常小且不科学的测试,发现拥有一个永远不会被调用的 catch 与将其置于 try catch 语句之外几乎没有区别。我通过分析器分别运行这两个脚本 5 次,并对总次数取平均值。

结果

  • 使用 Try/Catch 语句:1.34 秒
  • 没有 Try/Catch 语句:1.3 秒

代码

尝试/捕捉

<?php
foreach(range(1,200000) as $i) {
try {
if ($i % 5 == 0 && $i % 3 == 0) echo "fizzbuzz";
elseif ($i % 5 == 0) echo "fizz";
elseif ($i % 3 == 0) echo "buzz";
else echo $i;
} catch (Exception $e) {
echo sin($i) * cos($i * pi());
}
}

?>

没有尝试/捕捉

<?php
foreach(range(1,200000) as $i) {
if ($i % 5 == 0 && $i % 3 == 0) echo "fizzbuzz";
elseif ($i % 5 == 0) echo "fizz";
elseif ($i % 3 == 0) echo "buzz";
else echo $i;
}

?>

关于php - 没有捕获到异常时,php 5 try catches 会影响性能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2149890/

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