¿Llamar a function_exists () es más rápido o más lento que apply_filters () ... o la diferencia es tan pequeña que no debería considerarse?
Hice un poco de pruebas basadas en Kaiser y demostró que function_exists () es ~ 3 veces más rápido donde existen tanto la función como el filtro. y ~ 11 veces más rápido si el filtro no existe. No esperaba esto.
function taco_party() {
return true;
}
add_filter( 'taco-party', 'taco_party' );
timer_start();
for ( $i = 0; $i < 1000000; $i++ ) {
$test = apply_filters( 'taco-party', '' );
}
echo( 'Seconds: ' . timer_stop( 0, 10 ) . '<br />' );
timer_start();
for ( $i = 0; $i < 1000000; $i++ ) {
if ( function_exists( 'taco_party' ) ) {
$test = taco_party();
}
}
echo( 'Seconds: ' . timer_stop( 0, 10 ) . '<br />' );
Tenga en cuenta que esto está ejecutando cada método 1,000,000 veces, lo cual es bastante. Cada método ejecutado una vez se completa muy, muy rápidamente:
Test 1: 0.0000491142
Test 2: 0.0000140667
Concluyo que la diferencia no es un problema.