A function timer… function

Handy function that calculates your function/method execution time so you can optimize your code’s performance.

/**
 * Time a callable function/method
 * 
 * Returns an array containing the response of the callback in the first index,
 * and the total time for execution in the second key.
 *
 * @param  mixed  $callback  A callable function/method (i.e. `get_posts` or `array( $my_obj, 'my_method' )`)
 * @return mixed             Array with func value response, and execution time
 */
function dw_time_it( $callback ) {
    $args = func_get_args();
    // Remove callback from args
    unset( $args[ array_search( $callback, $args ) ] );

    if ( ! function_exists( 'microtime' ) ) {
        return array( call_user_func_array( $callback, $args ), false );
    }

    $time_start = microtime( true );

    $data_to_return = call_user_func_array( $callback, $args );

    $total_time = microtime( true ) - $time_start;

    return array( $data_to_return, $total_time );
}

Comment