php启动的开销,PHP函数调用开销有多重要?

博客探讨了在PHP编程中,为了性能优化而进行的函数调用减少是否值得牺牲代码的可读性和可维护性。作者通过两个示例展示了将异常处理和条件判断简化后的代码,并通过基准测试显示了性能提升,但同时也指出这些改变增加了认知负担。文章提出了疑问,这样的微观优化在实际项目中是否合理,尤其是在考虑到其他资源密集型操作如数据库查询和HTTP调用的情况下。最后,作者寻求关于此话题的进一步见解和研究资料。
摘要由CSDN通过智能技术生成

我对

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数组发生了复杂的排序.在一天结束的时候,这个优化是否证明使代码更难阅读和维护的代价?或者,虽然这些例子是简化的,但是有人发现第二个例子比第一个例子好吗?

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

编辑:

示例测试:

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违规,牺牲了一个简单的非域特定示例.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值