@ 2023-05-15T14:55:55Z <?php
// Most likely admin scenario.
function is_admin() {
return true;
}
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_notem() {
/**
* 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;
}
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 );
}
function determine_locale_plain() {
/**
* 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_notem();
echo 'notem: ', $notem = ( hrtime(true)-$t ) / 1e9, "s\n";
$t = hrtime(true);
for ( $i = 0; $i++ < $its; )
determine_locale_plain();
echo 'plain: ', $plain = ( hrtime(true)-$t ) / 1e9, "s\n\n";
printf( 'Plain is %sx faster', number_format( $notem / $plain, 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.006 0.016 22.13 8.3.14 0.010 0.041 16.58 8.3.13 0.003 0.020 18.46 8.3.12 0.009 0.012 18.82 8.3.11 0.010 0.029 20.94 8.3.10 0.006 0.035 24.06 8.3.9 0.003 0.019 26.77 8.3.8 0.009 0.018 17.97 8.3.7 0.019 0.035 18.55 8.3.6 0.016 0.032 16.50 8.3.5 0.010 0.049 16.84 8.3.4 0.010 0.047 23.75 8.3.3 0.017 0.027 18.57 8.3.2 0.006 0.015 24.18 8.3.1 0.003 0.017 24.66 8.3.0 0.003 0.019 26.16 8.2.26 0.000 0.030 18.11 8.2.25 0.003 0.018 18.16 8.2.24 0.006 0.015 17.45 8.2.23 0.006 0.016 22.58 8.2.22 0.010 0.023 37.54 8.2.21 0.010 0.033 26.77 8.2.20 0.003 0.023 18.41 8.2.19 0.007 0.039 16.58 8.2.18 0.010 0.029 16.75 8.2.17 0.004 0.035 18.95 8.2.16 0.010 0.031 22.96 8.2.15 0.007 0.014 25.66 8.2.14 0.010 0.026 24.66 8.2.13 0.009 0.012 26.16 8.2.12 0.000 0.021 19.54 8.2.11 0.007 0.027 20.64 8.2.10 0.011 0.018 17.72 8.2.9 0.003 0.023 17.88 8.2.8 0.008 0.019 18.04 8.2.7 0.010 0.017 17.50 8.2.6 0.016 0.019 17.47 8.2.5 0.013 0.022 17.25 8.2.4 0.012 0.022 17.63 8.2.3 0.015 0.018 17.47 8.2.2 0.007 0.027 17.50 8.2.1 0.009 0.026 17.63 8.2.0 0.013 0.026 17.38 8.1.31 0.003 0.031 16.84 8.1.30 0.003 0.037 17.69 8.1.29 0.007 0.020 18.88 8.1.28 0.010 0.036 25.92 8.1.27 0.004 0.018 24.66 8.1.26 0.009 0.012 26.35 8.1.25 0.000 0.021 28.09 8.1.24 0.006 0.026 21.01 8.1.23 0.006 0.021 19.23 8.1.22 0.000 0.025 17.74 8.1.21 0.004 0.021 18.77 8.1.20 0.003 0.022 17.35 8.1.19 0.012 0.024 17.25 8.1.18 0.013 0.025 17.00 8.1.17 0.010 0.025 17.38 8.1.16 0.008 0.025 17.60 8.1.15 0.018 0.015 17.13 8.1.14 0.018 0.015 17.13 8.1.13 0.016 0.019 17.25 8.1.12 0.013 0.022 17.38 8.1.11 0.012 0.021 17.09 8.1.10 0.015 0.021 17.23 8.1.9 0.009 0.024 17.25 8.1.8 0.011 0.025 17.25 8.1.7 0.013 0.025 17.34 8.1.6 0.012 0.024 17.38 8.1.5 0.020 0.017 17.25 8.1.4 0.010 0.026 17.38 8.1.3 0.011 0.023 17.36 8.1.2 0.007 0.029 17.49 8.1.1 0.014 0.021 17.47 8.1.0 0.016 0.019 17.22 8.0.30 0.007 0.023 22.14 8.0.29 0.000 0.027 16.75 8.0.28 0.011 0.026 16.75 8.0.27 0.010 0.027 16.75 8.0.26 0.008 0.031 16.61 8.0.25 0.019 0.019 16.61 8.0.24 0.020 0.020 16.75 8.0.23 0.011 0.026 16.63 8.0.22 0.014 0.024 16.75 8.0.21 0.011 0.026 16.63 8.0.20 0.016 0.022 16.60 8.0.19 0.010 0.028 16.63 8.0.18 0.009 0.028 16.63 8.0.17 0.016 0.023 16.71 8.0.16 0.016 0.022 16.63 8.0.15 0.013 0.023 16.60 8.0.14 0.018 0.021 16.63 8.0.13 0.010 0.027 16.63 8.0.12 0.012 0.027 16.52 8.0.11 0.008 0.028 16.63 8.0.10 0.015 0.023 16.52 8.0.9 0.013 0.023 16.52 8.0.8 0.017 0.020 16.75 8.0.7 0.012 0.024 16.75 8.0.6 0.007 0.030 16.52 8.0.5 0.010 0.027 16.63 8.0.3 0.007 0.030 16.61 8.0.2 0.014 0.025 16.61 8.0.1 0.013 0.023 16.75
preferences:dark mode live preview
53 ms | 403 KiB | 5 Q