@ 2023-06-01T12:44:32Z <?php
// Most likely front-end scenario.
function is_admin() {
return false;
}
function wp_is_json_request() {
return false;
}
function get_locale() {
return 'en_US';
}
function get_user_locale() {
return 'en_US';
}
function apply_filters( $a, $b ) {
return $b;
}
function sanitize_locale_name( $a ) {
return $a;
}
function determine_locale_actual() {
/**
* Filters the locale for the current request prior to the default determination process.
*
* Using this filter allows to override the default logic, effectively short-circuiting the function.
*
* @since 5.0.0
*
* @param string|null $locale The locale to return and short-circuit. Default null.
*/
$determined_locale = apply_filters( 'pre_determine_locale', null );
if ( $determined_locale && is_string( $determined_locale ) ) {
return $determined_locale;
}
if (
isset( $GLOBALS['pagenow'] ) && 'wp-login.php' === $GLOBALS['pagenow'] &&
( ! empty( $_GET['wp_lang'] ) || ! empty( $_COOKIE['wp_lang'] ) )
) {
if ( ! empty( $_GET['wp_lang'] ) ) {
$determined_locale = sanitize_locale_name( $_GET['wp_lang'] );
} else {
$determined_locale = sanitize_locale_name( $_COOKIE['wp_lang'] );
}
} else if (
( isset( $_GET['_locale'] ) && 'user' === $_GET['_locale'] && wp_is_json_request() ) || is_admin()
) {
$determined_locale = get_user_locale();
} else {
$determined_locale = get_locale();
}
/**
* Filters the locale for the current request.
*
* @since 5.0.0
*
* @param string $locale The locale.
*/
return apply_filters( 'determine_locale', $determined_locale );
}
function determine_locale_proposed() {
/**
* Filters the locale for the current request prior to the default determination process.
*
* Using this filter allows to override the default logic, effectively short-circuiting the function.
*
* @since 5.0.0
*
* @param string|null $locale The locale to return and short-circuit. Default null.
*/
$determined_locale = apply_filters( 'pre_determine_locale', null );
if ( $determined_locale && is_string( $determined_locale ) ) {
return $determined_locale;
}
if (
is_admin()
|| ( isset( $_GET['_locale'] ) && 'user' === $_GET['_locale'] && wp_is_json_request() )
) {
$determined_locale = get_user_locale();
} else {
$determined_locale = get_locale();
}
if ( isset( $GLOBALS['pagenow'] ) && 'wp-login.php' === $GLOBALS['pagenow'] ) {
if ( ! empty( $_GET['wp_lang'] ) ) {
$determined_locale = sanitize_locale_name( $_GET['wp_lang'] ) ?: $determined_locale;
} elseif ( ! empty( $_COOKIE['wp_lang'] ) ) {
$determined_locale = sanitize_locale_name( $_COOKIE['wp_lang'] ) ?: $determined_locale;
}
}
/**
* Filters the locale for the current request.
*
* @since 5.0.0
*
* @param string $locale The locale.
*/
return apply_filters( 'determine_locale', $determined_locale );
}
determine_locale_actual();
determine_locale_proposed();
$its = 1e5;
$t = hrtime(true);
for ( $i = 0; $i++ < $its; )
determine_locale_actual();
echo 'current: ', $old = ( hrtime(true)-$t ) / 1e9, "s\n";
$t = hrtime(true);
for ( $i = 0; $i++ < $its; )
determine_locale_proposed();
echo 'proposed: ', $new = ( hrtime(true)-$t ) / 1e9, "s\n\n";
printf( 'Proposed is %sx faster', number_format( $old / $new, 2 ) );
Enable javascript to submit You have javascript disabled. You will not be able to edit any code.
Here you find the average performance (time & memory) of each version. A grayed out version indicates it didn't complete successfully (based on exit-code).
Version System time (s) User time (s) Memory (MiB) 8.3.11 0.004 0.032 20.94 8.3.10 0.006 0.019 24.06 8.3.9 0.007 0.024 26.77 8.3.8 0.006 0.025 18.55 8.3.7 0.016 0.029 18.27 8.3.6 0.017 0.030 16.75 8.3.5 0.007 0.038 16.47 8.3.4 0.019 0.038 20.47 8.3.3 0.010 0.036 20.75 8.3.2 0.006 0.018 24.18 8.3.1 0.006 0.018 24.66 8.3.0 0.003 0.022 26.16 8.2.23 0.007 0.022 22.58 8.2.22 0.007 0.030 37.54 8.2.21 0.000 0.025 26.77 8.2.20 0.003 0.040 16.63 8.2.19 0.010 0.044 16.79 8.2.18 0.014 0.044 16.75 8.2.17 0.016 0.044 18.91 8.2.16 0.013 0.035 22.96 8.2.15 0.007 0.023 25.66 8.2.14 0.006 0.019 24.66 8.2.13 0.000 0.025 26.16 8.2.12 0.004 0.021 19.48 8.2.11 0.003 0.037 22.24 8.2.10 0.000 0.034 17.97 8.2.9 0.003 0.026 17.63 8.2.8 0.004 0.026 17.97 8.2.7 0.003 0.027 17.63 8.2.6 0.008 0.033 17.50 8.2.5 0.011 0.029 17.38 8.2.4 0.010 0.029 17.75 8.2.3 0.006 0.033 17.63 8.2.2 0.010 0.029 17.50 8.2.1 0.007 0.032 17.38 8.2.0 0.012 0.028 17.38 8.1.29 0.003 0.028 30.84 8.1.28 0.013 0.032 25.92 8.1.27 0.003 0.021 24.66 8.1.26 0.000 0.024 26.35 8.1.25 0.004 0.022 28.09 8.1.24 0.006 0.032 23.92 8.1.23 0.010 0.026 19.18 8.1.22 0.006 0.025 17.78 8.1.21 0.007 0.023 18.77 8.1.20 0.009 0.019 17.35 8.1.19 0.011 0.028 16.84 8.1.18 0.010 0.031 17.13 8.1.17 0.014 0.032 17.00 8.1.16 0.014 0.024 17.23 8.1.15 0.009 0.028 17.10 8.1.14 0.006 0.024 19.01 8.1.13 0.017 0.022 17.25 8.1.12 0.010 0.027 17.25 8.1.11 0.007 0.034 17.25 8.1.10 0.008 0.032 17.10 8.1.9 0.003 0.034 17.38 8.1.8 0.019 0.022 17.50 8.1.7 0.017 0.023 17.25 8.1.6 0.012 0.028 17.35 8.1.5 0.018 0.021 17.38 8.1.4 0.015 0.024 17.60 8.1.3 0.022 0.019 17.35 8.1.2 0.019 0.022 17.59 8.1.1 0.004 0.036 17.50 8.1.0 0.013 0.027 17.38 8.0.30 0.006 0.023 20.16 8.0.29 0.003 0.027 16.75 8.0.28 0.015 0.025 16.75 8.0.27 0.017 0.024 16.63 8.0.26 0.010 0.030 16.52 8.0.25 0.020 0.021 16.75 8.0.24 0.014 0.025 16.63 8.0.23 0.014 0.024 16.73 8.0.22 0.012 0.029 16.72 8.0.21 0.012 0.028 16.75 8.0.20 0.010 0.030 16.75 8.0.19 0.010 0.031 16.75 8.0.18 0.010 0.035 16.75 8.0.17 0.010 0.031 16.88 8.0.16 0.011 0.031 16.75 8.0.15 0.016 0.023 16.59 8.0.14 0.014 0.025 16.60 8.0.13 0.019 0.022 16.72 8.0.12 0.013 0.025 16.52 8.0.11 0.015 0.026 16.52 8.0.10 0.010 0.032 16.52 8.0.9 0.008 0.031 16.71 8.0.8 0.012 0.028 16.52 8.0.7 0.014 0.025 16.60 8.0.6 0.007 0.030 17.18 8.0.5 0.010 0.031 16.52 8.0.3 0.015 0.025 16.63 8.0.2 0.022 0.020 16.75 8.0.1 0.016 0.028 16.52
preferences:dark mode live preview
28.03 ms | 403 KiB | 5 Q