wordpress-develop/tests/performance/wp-content/mu-plugins/server-timing.php
Weston Ruter d5792c7a88 General: Use static on closures whenever $this is not used to avoid memory leaks.
Props westonruter, jrf, spacedmonkey.
Fixes #58323.


git-svn-id: https://develop.svn.wordpress.org/trunk@55822 602fd350-edb4-49c9-b593-d223f7449a82
2023-05-17 22:44:21 +00:00

44 lines
987 B
PHP

<?php
add_action(
'template_redirect',
static function() {
global $timestart;
$server_timing_values = array();
$template_start = microtime( true );
$server_timing_values['before-template'] = $template_start - $timestart;
ob_start();
add_action(
'shutdown',
static function() use ( $server_timing_values, $template_start ) {
global $timestart;
$output = ob_get_clean();
$server_timing_values['template'] = microtime( true ) - $template_start;
$server_timing_values['total'] = $server_timing_values['before-template'] + $server_timing_values['template'];
$header_values = array();
foreach ( $server_timing_values as $slug => $value ) {
if ( is_float( $value ) ) {
$value = round( $value * 1000.0, 2 );
}
$header_values[] = sprintf( 'wp-%1$s;dur=%2$s', $slug, $value );
}
header( 'Server-Timing: ' . implode( ', ', $header_values ) );
echo $output;
},
PHP_INT_MIN
);
},
PHP_INT_MAX
);