PHP用函数和不用函数的效率对比

三郎 2023-2-4 202

PHP用函数和不用函数的效率对比,如果代码中需要重复用到一段处理代码,一般都是直接写个函数,然后调用,一面代码太冗长,今天做了个简单的测试:

function t($a){
	
}
function c($a){
    t($a);
}
function d($a){
    c($a);
}
$counter=10000000;
echo PHP_EOL.PHP_EOL;
$start = microtime( true );
for( $i = 1; $i <= $counter; $i++ ){
	
}
$end = microtime( true );
$cost_time = $end - $start;
echo "不用函数 : 耗费时间为{$cost_time},<br />";
echo PHP_EOL.PHP_EOL;
$start = microtime( true );
for( $i = 1; $i <= $counter; $i++ ){
	t(1);
}
$end = microtime( true );
$cost_time = $end - $start;
echo "用函数t : 耗费时间为{$cost_time},<br />";
echo PHP_EOL.PHP_EOL;
$start = microtime( true );
for( $i = 1; $i <= $counter; $i++ ){
	c(1);
}
$end = microtime( true );
$cost_time = $end - $start;
echo "用函数c : 耗费时间为{$cost_time},<br />";
echo PHP_EOL.PHP_EOL;
$start = microtime( true );
for( $i = 1; $i <= $counter; $i++ ){
	d(1);
}
$end = microtime( true );
$cost_time = $end - $start;
echo "用函数d : 耗费时间为{$cost_time},<br />";

测试结果:

不用函数 : 耗费时间为0.069618940353394,
用函数t : 耗费时间为0.26708483695984,
用函数c : 耗费时间为0.47567200660706,
用函数d : 耗费时间为0.65791392326355,


说明不用函数的效率是用函数的3倍以上,函数嵌套越多,效率越低。


还有一个需要注意的是,函数的名称越长,效率也会有点下降,当然不是很多。

最新回复 (1)
  • 0 引用 2
    1.  一个功能可以用内置函数完成,尽量使用它而不是自己编写php函数。

    2.  如果某个功能对性能要求很高,可以考虑用扩展来实现。

    3.  Php函数调用开销较大,因此不要过分封装。有些功能,如果需要调用的次数很多本身又只用1、2行代码就行实现的,建议就不要封装调用了。

    4.  不要过分迷恋各种设计模式,如上一条描述,过分的封装会带来性能的下降。需要考虑两者的权衡。Php有自己的特点,切不可东施效颦,过分效仿java的模式。

    5.  函数不宜嵌套过深,递归使用要谨慎。

    6.  伪函数性能很高,同等功能实现下优先考虑。比如用isset代替array_key_exists

    7.  函数返回引用没有太大意义,也起不到实际作用,建议不予考虑。

    8.  类成员方法效率不比普通函数低,因此不用担心性能损耗。建议多考虑静态方法,可读性及安全性都更好。

    9.  如不是特殊需要,参数传递都建议使用传值而不是传引用。当然,如果参数是很大的数组且需要修改时可以考虑引用传递。
    2023-5-14 回复
返回
发新帖