@ 2023-05-15T12:39:38Z <?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_text_field( $a ) {
return $a;
}
function determine_locale() {
/**
* 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 ( ! empty( $determined_locale ) && is_string( $determined_locale ) ) {
return $determined_locale;
}
$determined_locale = get_locale();
if ( is_admin() ) {
$determined_locale = get_user_locale();
}
if ( isset( $_GET['_locale'] ) && 'user' === $_GET['_locale'] && wp_is_json_request() ) {
$determined_locale = get_user_locale();
}
$wp_lang = '';
if ( ! empty( $_GET['wp_lang'] ) ) {
$wp_lang = sanitize_text_field( $_GET['wp_lang'] );
} elseif ( ! empty( $_COOKIE['wp_lang'] ) ) {
$wp_lang = sanitize_text_field( $_COOKIE['wp_lang'] );
}
if ( ! empty( $wp_lang ) && ! empty( $GLOBALS['pagenow'] ) && 'wp-login.php' === $GLOBALS['pagenow'] ) {
$determined_locale = $wp_lang;
}
/**
* 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();
function determine_locale_new() {
/**
* 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_text_field( $_GET['wp_lang'] ) ?: $determined_locale;
} elseif ( ! empty( $_COOKIE['wp_lang'] ) ) {
$determined_locale = sanitize_text_field( $_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 );
}
$its = 1e5;
$t = hrtime(true);
for ( $i = 0; $i++ < $its; )
determine_locale();
echo 'old: ', $old = ( hrtime(true)-$t ) / 1e9, "s\n";
$t = hrtime(true);
for ( $i = 0; $i++ < $its; )
determine_locale_new();
echo 'new: ', $new = ( hrtime(true)-$t ) / 1e9, "s\n\n";
printf( 'New 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.4.1 0.013 0.032 21.99 8.3.14 0.003 0.024 19.11 8.3.13 0.000 0.030 18.50 8.3.12 0.006 0.022 19.19 8.3.11 0.009 0.019 20.94 8.3.10 0.003 0.024 24.06 8.3.9 0.007 0.020 18.33 8.3.8 0.003 0.032 17.97 8.3.7 0.013 0.044 16.75 8.3.6 0.010 0.056 18.31 8.3.5 0.010 0.057 16.84 8.3.4 0.003 0.049 23.79 8.3.3 0.016 0.036 18.98 8.3.2 0.003 0.024 24.18 8.3.1 0.010 0.048 24.66 8.3.0 0.010 0.025 26.16 8.2.26 0.003 0.023 16.50 8.2.25 0.013 0.042 18.19 8.2.24 0.006 0.023 18.62 8.2.23 0.003 0.024 22.58 8.2.22 0.003 0.026 37.54 8.2.21 0.013 0.029 26.77 8.2.20 0.010 0.036 16.50 8.2.19 0.010 0.039 16.75 8.2.18 0.010 0.051 16.35 8.2.17 0.016 0.052 18.92 8.2.16 0.010 0.042 22.96 8.2.15 0.006 0.035 25.66 8.2.14 0.000 0.028 24.66 8.2.13 0.003 0.024 26.16 8.2.12 0.000 0.034 17.93 8.2.11 0.006 0.039 20.46 8.2.10 0.011 0.029 17.91 8.2.9 0.007 0.030 17.97 8.2.8 0.009 0.025 18.03 8.2.7 0.006 0.029 17.63 8.2.6 0.015 0.038 17.29 8.2.5 0.008 0.048 17.50 8.2.4 0.015 0.035 17.38 8.2.3 0.010 0.040 17.50 8.2.2 0.019 0.032 17.75 8.2.1 0.016 0.033 17.50 8.2.0 0.006 0.040 17.25 8.1.31 0.010 0.054 15.87 8.1.30 0.003 0.025 18.65 8.1.29 0.010 0.036 18.88 8.1.28 0.007 0.047 25.92 8.1.27 0.000 0.029 24.66 8.1.26 0.007 0.021 26.35 8.1.25 0.007 0.021 28.09 8.1.24 0.000 0.046 22.30 8.1.23 0.003 0.031 22.09 8.1.22 0.000 0.034 17.78 8.1.21 0.003 0.030 19.04 8.1.20 0.007 0.028 17.00 8.1.19 0.016 0.031 17.00 8.1.18 0.022 0.025 16.97 8.1.17 0.013 0.032 17.25 8.1.16 0.008 0.034 17.35 8.1.15 0.013 0.029 17.13 8.1.14 0.010 0.031 17.00 8.1.13 0.011 0.032 17.38 8.1.12 0.012 0.032 17.38 8.1.11 0.014 0.029 17.25 8.1.10 0.007 0.035 17.38 8.1.9 0.010 0.032 17.23 8.1.8 0.018 0.029 17.13 8.1.7 0.014 0.029 17.50 8.1.6 0.018 0.027 17.38 8.1.5 0.014 0.031 17.38 8.1.4 0.011 0.033 17.35 8.1.3 0.017 0.028 17.25 8.1.2 0.010 0.035 17.63 8.1.1 0.012 0.037 17.38 8.1.0 0.020 0.026 19.04 8.0.30 0.006 0.026 20.07 8.0.29 0.003 0.033 16.88 8.0.28 0.010 0.034 16.72 8.0.27 0.010 0.036 16.52 8.0.26 0.011 0.035 16.52 8.0.25 0.015 0.030 16.75 8.0.24 0.016 0.029 16.52 8.0.23 0.013 0.032 16.88 8.0.22 0.009 0.036 16.75 8.0.21 0.015 0.030 16.75 8.0.20 0.008 0.038 16.75 8.0.19 0.010 0.035 16.71 8.0.18 0.017 0.028 16.63 8.0.17 0.011 0.033 16.75 8.0.16 0.011 0.037 16.74 8.0.15 0.009 0.035 16.62 8.0.14 0.016 0.027 16.63 8.0.13 0.012 0.031 16.61 8.0.12 0.007 0.037 16.61 8.0.11 0.007 0.037 16.72 8.0.10 0.011 0.034 16.71 8.0.9 0.012 0.031 16.60 8.0.8 0.024 0.027 16.52 8.0.7 0.011 0.033 16.75 8.0.6 0.010 0.034 16.62 8.0.5 0.004 0.041 16.71 8.0.3 0.010 0.034 16.71 8.0.2 0.011 0.033 16.84 8.0.1 0.016 0.028 16.87
preferences:dark mode live preview
54.37 ms | 403 KiB | 5 Q