加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP函数调用开销有多重要?

发布时间:2020-12-13 16:42:45 所属栏目:PHP教程 来源:网络整理
导读:我对 PHP比较新,慢慢地学习了语言特有的特质.有一件事我很厉害的是我(所以我被告知)使用太多的函数调用,一般被要求做一些事情来解决.这里有两个例子: // Change this:} catch (Exception $e) { print "It seems that error " . $e-getCode() . " occured";
我对 PHP比较新,慢慢地学习了语言特有的特质.有一件事我很厉害的是我(所以我被告知)使用太多的函数调用,一般被要求做一些事情来解决.这里有两个例子:
// Change this:
} catch (Exception $e) {
  print "It seems that error " . $e->getCode() . " occured";
  log("Error: " . $e->getCode());
}

// To this:
} catch (Exception $e) {
  $code = $e->getCode();
  print "It seems that error " . $code . " occured";
  log("Error: " . $code);
}

第二例

// Change this:
$customer->setProducts($products);

// To this:
if (!empty($products)) {
  $customer->setProducts($products);
}

在第一个例子中,我发现将$e-> getCode()分配给$code ads有轻微的认知开销; “什么是’$code’?啊,这是异常的代码.而第二个例子增加了循环复杂性.在这两个例子中,我发现优化是以可读性和可维护性为代价的.

性能提升是值得的还是这种微观优化?

我应该注意,现在我们坚持使用PHP 5.2.

我做了一些非常粗糙的台架测试,根据我的台架测试的性质,发现功能调用性能达到10%到70%的水平.我承认这是重要的.但是在该catch块被击中之前,有一个对数据库和HTTP终点的调用.在$客户端上设置$产品之前,$products数组发生了复杂的排序.在一天结束的时候,这个优化是否证明使代码更难阅读和维护的代价?或者,虽然这些例子是简化的,但是有人发现第二个例子比第一个例子好吗?

任何人都可以引用任何好的文章或研究这个?

编辑:

示例测试:

<?php
class Foo {
        private $list;
        public function setList($list) {
                $this->list = $list;
        }
}

$foo1 = new Foo();

for($i = 0; $i < 1000000; $i++) {
        $a = array();
        if (!empty($a))
                $foo1->setList($a);
}
?>

使用time命令运行该文件.在一个特定的机器上,几次运行后平均需要0.60秒.注释if(!empty($a))会导致平均运行时间为3.00秒.

澄清:这些是例子.第一个示例演示了可怕的异常处理和可能的DRY违规,牺牲了一个简单的非域特定示例.

规范的PHP实现非常慢,因为它易于实现,并且PHP所针对的应用程序不需要诸如快速函数调用之类的原始性能.

你可能想考虑其他PHP implementations.

如果您正在编写应用程序,您应该使用PHP编写(通过网络将数据从数据库转储到浏览器),那么函数调用开销并不重要.当然不要出于你的方式重复代码,因为你害怕使用一个函数会太多的开销.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读