2014-02-21 28 views
3

我有几个类处理对象,数组和字符串。PHP做了很多类型检查会减慢你的代码?

我想知道什么对性能的影响是做类型检查,如:

is_object(),is_array()和IS_STRING();

我在代码中使用了很多。

在被调用数千次的函数中,假设传递的参数是正确的类型还是检查以防止错误更好?

是否有任何资源可以查看php函数的性能权重?

+1

测试它们。衡量有没有他们的表现。但可能:你微调优化 – Nanne

+0

[gettype()](http://www.php.net/manual/en/function.gettype.php)上的'switch'可能会给你一个更快的选择,但是你是否需要测试性能以查看它是否有帮助 –

+1

如果可能的话,函数签名中的类型提示对于数组和对象来说可能是更好的选择。 – deceze

回答

2

你可以找出你自己。

在脚本开始时以毫秒为单位存储当前时间,运行一个类型检查几千次的循环,并将脚本末尾的时间与脚本开始时的时间进行比较。

+0

'$ _SERVER ['REQUEST_TIME_FLOAT']'将包含该起始值。 –

+0

我将自己对函数执行一些检查,以查看删除检查会对性能产生的影响。杰克在上面的答案中的评论实际上是通过与phpbench的链接确定了我想知道的。如果有多种方法来做同样的事情,我想养成使用性能最低的方法的习惯,特别是在编写非常频繁调用的代码时。 –

2

我更喜欢使用这些检查。 避免这种检查可以节省几毫秒。但是如果你没有检查它,就有可能导致网页崩溃或其他问题。

所以最好避免这些问题。如果您重复与数据库相关的任何功能,可能会导致性能问题。但这些小检查不会导致性能问题。

让我们先考虑一下,然后再作出决定。