You’ve probably noticed at some sites a little message, mainly in the page footer, type ‘ Page generated in 0th seconds …. ‘or something similar. Here you can learn how to easily make using PHP microtime() function
The code consists of two parts:
At the top of your PHP pages, primarily put the following code:
<?php // Put on top of the document $load_time = microtime(); $load_time = explode(' ',$load_time); $load_time = $load_time[1] + $load_time[0]; $page_start = $load_time; ?>
and near the end of the page (before body>), insert the following code:
<?php //Put an end of document $places = 4; //how many decimal places you want $load_time = microtime(); $load_time = explode(' ',$load_time); $load_time = $load_time[1] + $load_time[0]; $page_end = $load_time; $final_time = ($page_end - $page_start); $page_load_time = number_format($final_time, $places, '.', ''); echo("Page generated in " . $page_load_time . " seconds"); ?>
Microtime() function returns a Unix timestamp (timestamp) for the moment
In WordPress:
First, add this into your file wp-config.php file so that data about each MySQL query is stored, namely the time taken.
define( 'SAVEQUERIES', true );
Then in your footer.php, use this code to display it:
<?php global $wpdb; // Get the total page generation time $totaltime = timer_stop( false, 22 ); // Calculate the time spent on MySQL queries by adding up the time spent on each query $mysqltime = 0; foreach ( $wpdb->queries as $query ) $mysqltime = $mysqltime + $query[1]; // The time spent on PHP is the remainder $phptime = $totaltime - $mysqltime; // Create the percentages $mysqlper = number_format_i18n( $mysqltime / $totaltime * 100, 2 ); $phpper = number_format_i18n( $phptime / $totaltime * 100, 2 ); // Output the stats echo 'Page generated in ' . number_format_i18n( $totaltime, 5 ) . " seconds ( {$phpper}% PHP, {$mysqlper}% MySQL )"; ?>
Calculation is simple. Manipulate the string in a way to write the start and end time for the page and then simply subtract one from another and so we get the load time of pages.