mirror of
https://hk.gh-proxy.com/https://github.com/wp-cli/profile-command.git
synced 2025-08-21 06:39:02 +08:00
Capture cache hit / miss ratio
This commit is contained in:
parent
664364aac7
commit
707f2fb688
2 changed files with 25 additions and 2 deletions
|
@ -9,6 +9,11 @@ class Logger {
|
|||
'count' => 0,
|
||||
'time' => 0,
|
||||
);
|
||||
public $cache = array(
|
||||
'ratio' => 0,
|
||||
'hits' => 0,
|
||||
'misses' => 0,
|
||||
);
|
||||
public $hooks = array(
|
||||
'count' => 0,
|
||||
'time' => 0,
|
||||
|
@ -20,6 +25,8 @@ class Logger {
|
|||
|
||||
private $start_time = null;
|
||||
private $query_offset = null;
|
||||
private $cache_hit_offset = null;
|
||||
private $cache_miss_offset = null;
|
||||
private $hook_start_time = null;
|
||||
private $hook_depth = 0;
|
||||
private $request_start_time = null;
|
||||
|
@ -34,19 +41,21 @@ class Logger {
|
|||
* Start this logger
|
||||
*/
|
||||
public function start() {
|
||||
global $wpdb;
|
||||
global $wpdb, $wp_object_cache;
|
||||
$this->start_time = microtime( true );
|
||||
$this->query_offset = ! empty( $wpdb->queries ) ? count( $wpdb->queries ) : 0;
|
||||
if ( false === ( $key = array_search( $this, self::$active_loggers ) ) ) {
|
||||
self::$active_loggers[] = $this;
|
||||
}
|
||||
$this->cache_hit_offset = ! empty( $wp_object_cache->cache_hits ) ? $wp_object_cache->cache_hits : 0;
|
||||
$this->cache_miss_offset = ! empty( $wp_object_cache->cache_misses ) ? $wp_object_cache->cache_misses : 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Stop this logger
|
||||
*/
|
||||
public function stop() {
|
||||
global $wpdb;
|
||||
global $wpdb, $wp_object_cache;
|
||||
|
||||
if ( ! is_null( $this->start_time ) ) {
|
||||
$this->execution_time += microtime( true ) - $this->start_time;
|
||||
|
@ -58,8 +67,21 @@ class Logger {
|
|||
}
|
||||
}
|
||||
|
||||
if ( ! is_null( $this->cache_hit_offset ) && ! is_null( $this->cache_miss_offset ) ) {
|
||||
$cache_hits = ! empty( $wp_object_cache->cache_hits ) ? $wp_object_cache->cache_hits : 0;
|
||||
$cache_misses = ! empty( $wp_object_cache->cache_misses ) ? $wp_object_cache->cache_misses : 0;
|
||||
$cache_total = $cache_hits + $cache_misses;
|
||||
$this->cache['hits'] = $cache_hits - $this->cache_hit_offset;
|
||||
$this->cache['misses'] = $cache_misses - $this->cache_miss_offset;
|
||||
if ( $cache_total ) {
|
||||
$this->cache['ratio'] = $cache_hits / $cache_total;
|
||||
}
|
||||
}
|
||||
|
||||
$this->start_time = null;
|
||||
$this->query_offset = null;
|
||||
$this->cache_hit_offset = null;
|
||||
$this->cache_miss_offset = null;
|
||||
if ( false !== ( $key = array_search( $this, self::$active_loggers ) ) ) {
|
||||
unset( self::$active_loggers[ $key ] );
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue