| | Ruslan Yakushev | +----------------------------------------------------------------------------------------------+ */ /** * ======================== CONFIGURATION SETTINGS ============================== * If you do not want to use authentication for this page, set USE_AUTHENTICATION to 0. * If you use authentication then replace the default password. */ define('USE_AUTHENTICATION', 0); define('USERNAME', 'wincache'); define('PASSWORD', 'wincache'); /** * The Basic PHP authentication will work only when IIS is configured to support * Anonymous Authentication' and nothing else. If IIS is configured to support/use * any other kind of authentication like Basic/Negotiate/Digest etc, this will not work. * In that case use the array below to define the names of users in your * domain/network/workgroup which you want to grant access to. */ $user_allowed = array('DOMAIN\user1', 'DOMAIN\user2', 'DOMAIN\user3'); /** * If the array contains string 'all', then all the users authenticated by IIS * will have access to the page. Uncomment the below line and comment above line * to grant access to all users who gets authenticated by IIS. */ /* $user_allowed = array('all'); */ /** ===================== END OF CONFIGURATION SETTINGS ========================== */ if ( !extension_loaded( 'wincache' ) ) { die('The extension WINCACHE (php_wincache.dll) is not loaded. No statistics to show.'); } if ( USE_AUTHENTICATION == 1 ) { if (!empty($_SERVER['AUTH_TYPE']) && !empty($_SERVER['REMOTE_USER']) && strcasecmp($_SERVER['REMOTE_USER'], 'anonymous')) { if (!in_array(strtolower($_SERVER['REMOTE_USER']), array_map('strtolower', $user_allowed)) && !in_array('all', array_map('strtolower', $user_allowed))) { echo 'You are not authorised to view this page. Please contact server admin to get permission. Exiting.'; exit; } } else if ( !isset($_SERVER['PHP_AUTH_USER'] ) || !isset( $_SERVER['PHP_AUTH_PW'] ) || $_SERVER['PHP_AUTH_USER'] != USERNAME || $_SERVER['PHP_AUTH_PW'] != PASSWORD ) { header( 'WWW-Authenticate: Basic realm="WINCACHE Log In!"' ); header( 'HTTP/1.0 401 Unauthorized' ); exit; } else if ( $_SERVER['PHP_AUTH_PW'] == 'wincache' ) { echo "Please change the default password to get this page working. Exiting."; exit; } } define('IMG_WIDTH', 320); define('IMG_HEIGHT', 220); define('SUMMARY_DATA', 1); define('OCACHE_DATA', 2); // Opcode cache define('FCACHE_DATA', 3); // File cache define('UCACHE_DATA', 4); // User cache define('SCACHE_DATA', 5); // Session cache define('RCACHE_DATA', 6); // Resolve file cache define('BAR_CHART', 1); define('PIE_CHART', 2); define('PATH_MAX_LENGTH', 45); define('INI_MAX_LENGTH', 45); define('SUBKEY_MAX_LENGTH', 90); define('CACHE_MAX_ENTRY', 250); // WinCache settings that are used for debugging purposes $settings_to_hide = array( 'wincache.localheap', 'wincache.debuglevel', 'wincache.olocaltest' ); // Input parameters check $PHP_SELF = isset( $_SERVER['PHP_SELF'] ) ? htmlentities( strip_tags( $_SERVER['PHP_SELF'],'' ), ENT_QUOTES, 'UTF-8' ) : ''; $page = isset( $_GET['page'] ) ? $_GET['page'] : SUMMARY_DATA; if ( !is_numeric( $page ) || $page < SUMMARY_DATA || $page > RCACHE_DATA ) $page = SUMMARY_DATA; $img = 0; if ( isset( $_GET['img'] ) && is_numeric( $_GET['img'] ) ) { $img = $_GET['img']; if ( $img < OCACHE_DATA || $img > SCACHE_DATA) $img = 0; } $chart_type = BAR_CHART; if ( isset( $_GET['type'] ) && is_numeric( $_GET['type'] ) ) { $chart_type = $_GET['type']; if ( $chart_type < BAR_CHART || $chart_type > PIE_CHART) $chart_type = BAR_CHART; } $chart_param1 = 0; if ( isset( $_GET['p1'] ) && is_numeric( $_GET['p1'] ) ) { $chart_param1 = $_GET['p1']; if ( $chart_param1 < 0 ) $chart_param1 = 0; else if ( $chart_param1 > PHP_INT_MAX ) $chart_param1 = PHP_INT_MAX; } $chart_param2 = 0; if ( isset( $_GET['p2'] ) && is_numeric( $_GET['p2'] ) ) { $chart_param2 = $_GET['p2']; if ( $chart_param2 < 0 ) $chart_param2 = 0; else if ( $chart_param2 > PHP_INT_MAX ) $chart_param2 = PHP_INT_MAX; } $show_all_ucache_entries = 0; if ( isset( $_GET['all'] ) && is_numeric( $_GET['all'] ) ) { $show_all_ucache_entries = $_GET['all']; if ( $show_all_ucache_entries < 0 || $show_all_ucache_entries > 1) $show_all_ucache_entries = 0; } $clear_user_cache = 0; if ( isset( $_GET['clc'] ) && is_numeric( $_GET['clc'] ) ) { $clear_user_cache = $_GET['clc']; if ( $clear_user_cache < 0 || $clear_user_cache > 1) $clear_user_cache = 0; } $ucache_key = null; if ( isset( $_GET['key'] ) ) $ucache_key = $_GET['key']; // End of input parameters check // Initialize global variables $user_cache_available = function_exists('wincache_ucache_info') && !strcmp( ini_get( 'wincache.ucenabled' ), "1" ); $session_cache_available = function_exists('wincache_scache_info') && !strcasecmp( ini_get( 'session.save_handler' ), "wincache" ); $ocache_mem_info = null; $ocache_file_info = null; $ocache_summary_info = null; $fcache_mem_info = null; $fcache_file_info = null; $fcache_summary_info = null; $rpcache_mem_info = null; $rpcache_file_info = null; $ucache_mem_info = null; $ucache_info = null; $scache_mem_info = null; $scache_info = null; $sort_key = null; if ( $session_cache_available && ( $page == SUMMARY_DATA || $page == SCACHE_DATA ) ){ @session_name('WINCACHE_SESSION'); session_start(); } function cmp($a, $b) { global $sort_key; if ( $sort_key == 'file_name' ) return strcmp( get_trimmed_filename( $a[$sort_key], PATH_MAX_LENGTH ), get_trimmed_filename( $b[$sort_key], PATH_MAX_LENGTH ) ); else if ( $sort_key == 'resolve_path' ) return strcmp( get_trimmed_string( $a[$sort_key], PATH_MAX_LENGTH ), get_trimmed_string( $b[$sort_key], PATH_MAX_LENGTH ) ); else return 0; } function convert_bytes_to_string( $bytes ) { $units = array( 0 => 'B', 1 => 'kB', 2 => 'MB', 3 => 'GB' ); $log = log( $bytes, 1024 ); $power = (int) $log; $size = pow(1024, $log - $power); return round($size, 2) . ' ' . $units[$power]; } function seconds_to_words( $seconds ) { /*** return value ***/ $ret = ""; /*** get the hours ***/ $hours = intval(intval( $seconds ) / 3600); if ( $hours > 0 ) { $ret .= "$hours hours "; } /*** get the minutes ***/ $minutes = bcmod( ( intval( $seconds ) / 60 ), 60 ); if( $hours > 0 || $minutes > 0 ) { $ret .= "$minutes minutes "; } /*** get the seconds ***/ $seconds = bcmod( intval( $seconds ), 60 ); $ret .= "$seconds seconds"; return $ret; } function get_trimmed_filename( $filepath, $max_len ) { if ($max_len <= 0) die ('The maximum allowed length must be bigger than 0'); $result = basename( $filepath ); if ( strlen( $result ) > $max_len ) $result = substr( $result, -1 * $max_len ); return $result; } function get_trimmed_string( $input, $max_len ) { if ($max_len <= 3) die ('The maximum allowed length must be bigger than 3'); $result = $input; if ( strlen( $result ) > $max_len ) $result = substr( $result, 0, $max_len - 3 ). '...'; return $result; } function get_trimmed_ini_value( $input, $max_len, $separators = array('|', ',') ) { if ($max_len <= 3) die ('The maximum allowed length must be bigger than 3'); $result = $input; $lastindex = 0; if ( strlen( $result ) > $max_len ) { $result = substr( $result, 0, $max_len - 3 ).'...'; if ( !is_array( $separators ) ) die( 'The separators must be in an array' ); foreach ( $separators as $separator ) { $index = strripos( $result, $separator ); if ( $index !== false && $index > $lastindex ) $lastindex = $index; } if ( 0 < $lastindex && $lastindex < ( $max_len - 3 ) ) $result = substr( $result, 0, $lastindex + 1 ).'...'; } return $result; } function get_ocache_summary( $entries ) { $result = array(); $result['total_classes'] = 0; $result['total_functions'] = 0; $result['oldest_entry'] = ''; $result['recent_entry'] = ''; if ( isset( $entries ) && count( $entries ) > 0 && isset( $entries[1]['file_name'] ) ) { foreach ( (array)$entries as $entry ) { $result['total_classes'] += $entry['class_count']; $result['total_functions'] += $entry['function_count']; } } return $result; } function get_fcache_summary( $entries ) { $result = array(); $result['total_size'] = 0; $result['oldest_entry'] = ''; $result['recent_entry'] = ''; if ( isset( $entries ) && count( $entries ) > 0 && isset( $entries[1]['file_name'] ) ) { foreach ( (array)$entries as $entry ) { $result['total_size'] += $entry['file_size']; } } return $result; } function get_ocache_size_markup( $size ) { $size_string = convert_bytes_to_string( $size ); if ( $size > ( ini_get( 'wincache.ocachesize' ) * pow( 1024, 2 ) ) ) { return ''.$size_string.''; } return ''.$size_string.''; } function get_chart_title( $chart_data ) { $chart_title = ''; switch( $chart_data ) { case OCACHE_DATA: { $chart_title = 'Opcode Cache'; break; } case FCACHE_DATA: { $chart_title = 'File Cache'; break; } case UCACHE_DATA: { $chart_title = 'User Cache'; break; } case SCACHE_DATA: { $chart_title = 'Session Cache'; } } return $chart_title; } function gd_loaded() { return extension_loaded( 'gd' ); } if ( $img > 0 ) { if ( !gd_loaded() ) exit( 0 ); function create_hit_miss_chart( $width, $height, $hits, $misses, $title = 'Hits & Misses (in %)' ) { $hit_percent = 0; $miss_percent = 0; if ( $hits < 0 ) $hits = 0; if ( $misses < 0 ) $misses = 0; if ( $hits > 0 || $misses > 0 ) { $hit_percent = round( $hits / ( $hits + $misses ) * 100, 2 ); $miss_percent = round( $misses / ( $hits + $misses ) * 100, 2 ); } $data = array( 'Hits' => $hit_percent, 'Misses' => $miss_percent ); $image = imagecreate( $width, $height ); // colors $white = imagecolorallocate( $image, 0xFF, 0xFF, 0xFF ); $phpblue = imagecolorallocate( $image, 0x5C, 0x87, 0xB2 ); $black = imagecolorallocate( $image, 0x00, 0x00, 0x00 ); $gray = imagecolorallocate( $image, 0xC0, 0xC0, 0xC0 ); $maxval = max( $data ); $nval = sizeof( $data ); // draw something here $hmargin = 38; // left horizontal margin for y-labels $vmargin = 20; // top (bottom) vertical margin for title (x-labels) $base = floor( ( $width - $hmargin ) / $nval ); $xsize = $nval * $base - 1; // x-size of plot $ysize = $height - 2 * $vmargin; // y-size of plot // plot frame imagerectangle( $image, $hmargin, $vmargin, $hmargin + $xsize, $vmargin + $ysize, $black ); // top label $titlefont = 3; $txtsize = imagefontwidth( $titlefont ) * strlen( $title ); $xpos = (int)( $hmargin + ( $xsize - $txtsize ) / 2 ); $xpos = max( 1, $xpos ); // force positive coordinates $ypos = 3; // distance from top imagestring( $image, $titlefont, $xpos, $ypos, $title , $black ); // grid lines $labelfont = 2; $ngrid = 4; $dydat = 100 / $ngrid; $dypix = $ysize / $ngrid; for ( $i = 0; $i <= $ngrid; $i++ ) { $ydat = (int)( $i * $dydat ); $ypos = $vmargin + $ysize - (int)( $i * $dypix ); $txtsize = imagefontwidth( $labelfont ) * strlen( $ydat ); $txtheight = imagefontheight( $labelfont ); $xpos = (int)( ( $hmargin - $txtsize) / 2 ); $xpos = max( 1, $xpos ); imagestring( $image, $labelfont, $xpos, $ypos - (int)( $txtheight/2 ), $ydat, $black ); if ( !( $i == 0 ) && !( $i >= $ngrid ) ) imageline( $image, $hmargin - 3, $ypos, $hmargin + $xsize, $ypos, $gray ); // don't draw at Y=0 and top } // graph bars // columns and x labels $padding = 30; // half of spacing between columns $yscale = $ysize / ( $ngrid * $dydat ); // pixels per data unit for ( $i = 0; list( $xval, $yval ) = each( $data ); $i++ ) { // vertical columns $ymax = $vmargin + $ysize; $ymin = $ymax - (int)( $yval * $yscale ); $xmax = $hmargin + ( $i + 1 ) * $base - $padding; $xmin = $hmargin + $i * $base + $padding; imagefilledrectangle( $image, $xmin, $ymin, $xmax, $ymax, $phpblue ); // x labels $xlabel = $xval.': '.$yval.'%'; $txtsize = imagefontwidth( $labelfont ) * strlen( $xlabel ); $xpos = ( $xmin + $xmax - $txtsize ) / 2; $xpos = max( $xmin, $xpos ); $ypos = $ymax + 3; // distance from x axis imagestring( $image, $labelfont, $xpos, $ypos, $xlabel, $black ); } return $image; } function create_used_free_chart( $width, $height, $used_memory, $free_memory, $title = 'Free & Used Memory (in %)' ) { // Check the input parameters to avoid division by zero and weird cases if ( $free_memory <= 0 && $used_memory <= 0 ) { $free_memory = 1; $used_memory = 0; } $centerX = 120; $centerY = 120; $diameter = 120; $hmargin = 5; // left (right) horizontal margin $vmargin = 20; // top (bottom) vertical margin $image = imagecreate( $width, $height ); // colors $white = imagecolorallocate( $image, 0xFF, 0xFF, 0xFF ); $black = imagecolorallocate( $image, 0x00, 0x00, 0x00 ); $pie_color[1] = imagecolorallocate($image, 0x5C, 0x87, 0xB2); $pie_color[2] = imagecolorallocate($image, 0xCB, 0xE1, 0xEF); $pie_color[3] = imagecolorallocate($image, 0xC0, 0xC0, 0xC0); // Label font size $labelfont = 2; $hfw = imagefontwidth( $labelfont ); $vfw = imagefontheight( $labelfont ); // Border imagerectangle( $image, $hmargin, $vmargin, $width - $hmargin, $height - $vmargin, $black ); // Top label $titlefont = 3; $txtsize = imagefontwidth( $titlefont ) * strlen( $title ); $hpos = (int)( ($width - $txtsize) / 2 ); $vpos = 3; // distance from top imagestring( $image, $titlefont, $hpos, $vpos, $title , $black ); $total = 0; $n = 0; $items = array('Used memory' => $used_memory, 'Free memory' => $free_memory); //read the arguments into different arrays: foreach( $items as $key => $val ) { $n++; $label[$n] = $key; $value[$n] = $val; $total += $val; $arc_dec[$n] = $total*360; $arc_rad[$n] = $total*2*pi(); } //the base: $arc_rad[0] = 0; $arc_dec[0] = 0; //count the labels: for ( $i = 1; $i <= $n; $i++ ) { //calculate the percents: $perc[$i] = $value[$i] / $total; $percstr[$i] = (string) number_format( $perc[$i] * 100, 2 )."%"; //label with percentage: $label[$i] = $percstr[$i]; //calculate the arc and line positions: $arc_rad[$i] = $arc_rad[$i] / $total; $arc_dec[$i] = $arc_dec[$i] / $total; $hpos = round( $centerX + ( $diameter / 2 ) * sin( $arc_rad[$i] ) ); $vpos = round( $centerY + ( $diameter / 2 ) * cos( $arc_rad[$i] ) ); imageline( $image, $centerX, $centerY, $hpos, $vpos, $black ); imagearc( $image, $centerX, $centerY, $diameter, $diameter, $arc_dec[$i-1], $arc_dec[$i], $black ); //calculate the positions for the labels: $arc_rad_label = $arc_rad[$i-1] + 0.5 * $perc[$i] * 2 * pi(); $hpos = $centerX + 1.1 * ( $diameter / 2 ) * sin( $arc_rad_label ); $vpos = $centerY + 1.1 * ( $diameter / 2 ) * cos( $arc_rad_label ); if ( ( $arc_rad_label > 0.5 * pi() ) && ( $arc_rad_label < 1.5 * pi() ) ) { $vpos = $vpos - $vfw; } if ( $arc_rad_label > pi() ) { $hpos = $hpos - $hfw * strlen( $label[$i] ); } //display the labels: imagestring($image, $labelfont, $hpos, $vpos, $label[$i], $black); } //fill the parts with their colors: for ( $i = 1; $i <= $n; $i++ ) { if ( round($arc_dec[$i] - $arc_dec[$i-1]) != 0 ) { $arc_rad_label = $arc_rad[$i - 1] + 0.5 * $perc[$i] * 2 * pi(); $hpos = $centerX + 0.8 * ( $diameter / 2 ) * sin( $arc_rad_label ); $vpos = $centerY + 0.8 * ( $diameter / 2 ) * cos( $arc_rad_label ); imagefilltoborder( $image, $hpos, $vpos, $black, $pie_color[$i] ); } } // legend $hpos = $centerX + 1.1 * ($diameter / 2) + $hfw * strlen( '50.00%' ); $vpos = $centerY - ($diameter / 2); $i = 1; $thumb_size = 5; foreach ($items as $key => $value){ imagefilledrectangle( $image, $hpos, $vpos, $hpos + $thumb_size, $vpos + $thumb_size, $pie_color[$i++] ); imagestring( $image, $labelfont, $hpos + $thumb_size + 5, $vpos, $key, $black ); $vpos += $vfw + 2; } return $image; } $png_image = null; $chart_title = get_chart_title($img); if ( $chart_type == PIE_CHART ){ $png_image = create_used_free_chart( IMG_WIDTH, IMG_HEIGHT, $chart_param1, $chart_param2, 'Memory Usage by '.$chart_title.' (in %)' ); } else{ $png_image = create_hit_miss_chart( IMG_WIDTH, IMG_HEIGHT, $chart_param1, $chart_param2, $chart_title.' Hits & Misses (in %)' ); } if ( $png_image !== null ) { // flush image header('Content-type: image/png'); imagepng($png_image); imagedestroy($png_image); } exit; } function get_chart_markup( $data_type, $chart_type, $chart_param1, $chart_param2 ) { global $PHP_SELF; $result = ''; $alt_title = ''; if ( gd_loaded() ){ $alt_title = get_chart_title( $data_type ); if ( $alt_title == '' ) return ''; if ( $chart_type == BAR_CHART ) $alt_title .= ' hit and miss percentage chart'; elseif ( $chart_type == PIE_CHART ) $alt_title .= ' memory usage percentage chart'; else return ''; $result = ''; } else { $result = '

Enable GD library (php_gd2.dll) in order to see the charts.

'; } return $result; } function cache_scope_text( $is_local ) { return ( $is_local == true ) ? 'local' : 'global'; } function init_cache_info( $cache_data = SUMMARY_DATA ) { global $ocache_mem_info, $ocache_file_info, $ocache_summary_info, $fcache_mem_info, $fcache_file_info, $fcache_summary_info, $rpcache_mem_info, $rpcache_file_info, $ucache_mem_info, $ucache_info, $scache_mem_info, $scache_info, $user_cache_available, $session_cache_available; if ( $cache_data == SUMMARY_DATA || $cache_data == OCACHE_DATA ) { $ocache_mem_info = wincache_ocache_meminfo(); $ocache_file_info = wincache_ocache_fileinfo(); $ocache_summary_info = get_ocache_summary( $ocache_file_info['file_entries'] ); } if ( $cache_data == SUMMARY_DATA || $cache_data == FCACHE_DATA ) { $fcache_mem_info = wincache_fcache_meminfo(); $fcache_file_info = wincache_fcache_fileinfo(); $fcache_summary_info = get_fcache_summary( $fcache_file_info['file_entries'] ); } if ( $cache_data == SUMMARY_DATA || $cache_data == RCACHE_DATA ){ $rpcache_mem_info = wincache_rplist_meminfo(); $rpcache_file_info = wincache_rplist_fileinfo(); } if ( $user_cache_available && ( $cache_data == SUMMARY_DATA || $cache_data == UCACHE_DATA ) ){ $ucache_mem_info = wincache_ucache_meminfo(); $ucache_info = wincache_ucache_info(); } if ( $session_cache_available && ( $cache_data == SUMMARY_DATA || $cache_data == SCACHE_DATA ) ){ $scache_mem_info = wincache_scache_meminfo(); $scache_info = wincache_scache_info(); } } if ( USE_AUTHENTICATION && $user_cache_available && $clear_user_cache ){ wincache_ucache_clear(); header('Location: '.$PHP_SELF.'?page='.UCACHE_DATA); exit; } ?> Windows Cache Extension for PHP - Statistics
General Information
WinCache version
PHP version
Document root
PHPRC
Server software
Operating System
Processor information
Number of processors
Machine name
Host name
PHP session handler
Application Pool ID
Site ID
FastCGI impersonation
$ini_value) { // Do not show the settings used for debugging if ( in_array( $ini_name, $settings_to_hide ) ) continue; echo '', "\n"; } ?>
Cache Settings
', $ini_name, ''; if ( !is_numeric( $ini_value['local_value'] ) ) echo get_trimmed_ini_value( $ini_value['local_value'], INI_MAX_LENGTH ); else echo $ini_value['local_value']; echo '
Opcode Cache Overview
Cache scope
Cache uptime
Cached files
Hits
Misses
Total memory
Available memory
Memory overhead
Number of functions
Number of classes
File Cache Overview
Cache uptime
Cached files
Total files size
Hits
Misses
Total memory
Available memory
Memory overhead
User Cache Overview
Cache scope
Cache uptime
Cached entries
Hits
Misses
Total memory
Available memory
Memory overhead
Session Cache Overview
Cache scope
Cache uptime
Cached entries
Hits
Misses
Total memory
Available memory
Memory overhead
Resolve Path Cache Overview
Cached entries
Total memory
Available memory
Memory overhead
Opcode Cache Overview
Cache scope
Cache uptime
Cached files
Hits
Misses
Total memory
Available memory
Memory overhead
Number of functions
Number of classes
', "\n"; echo '', "\n"; echo '', "\n"; echo '', "\n"; echo '', "\n"; echo '', "\n"; echo '', "\n"; echo '', "\n"; echo "\n"; } ?>
Opcode cache entries
File name Function count Class count Add time Use time Last check Hit count
', get_trimmed_filename( $entry['file_name'], PATH_MAX_LENGTH ),'', $entry['function_count'],'', $entry['class_count'],'', $entry['add_time'],'', $entry['use_time'],'', $entry['last_check'],'', $entry['hit_count'],'
File Cache Overview
Cache uptime
Cached files
Total files size
Hits
Misses
Total memory
Available memory
Memory overhead
', "\n"; echo '', "\n"; echo '', "\n"; echo '', "\n"; echo '', "\n"; echo '', "\n"; echo '', "\n"; echo "\n"; } ?>
File cache entries
File name File size Add time Use time Last check Hit Count
', get_trimmed_filename( $entry['file_name'], PATH_MAX_LENGTH ),'', convert_bytes_to_string( $entry['file_size'] ),'', $entry['add_time'],'', $entry['use_time'],'', $entry['last_check'],'', $entry['hit_count'],'
User Cache Overview
Cache scope
Cache uptime
Cached entries 0 ) echo ' (Clear All)'; ?>
Hits
Misses
Total memory
Available memory
Memory overhead
', "\n"; if ( USE_AUTHENTICATION ) echo '', "\n"; else echo '', "\n"; echo '', "\n"; echo '', "\n"; echo '', "\n"; echo '', "\n"; echo '', "\n"; echo "\n"; if ($count++ > CACHE_MAX_ENTRY && !$show_all_ucache_entries){ echo ''; break; } } ?>
User cache entries
Key name Value type Value size Total TTL Total age Hit Count
', get_trimmed_string( $entry['key_name'], PATH_MAX_LENGTH ),'', get_trimmed_string( $entry['key_name'], PATH_MAX_LENGTH ),'', $entry['value_type'], '', convert_bytes_to_string( $entry['value_size']), '', $entry['ttl_seconds'],'', $entry['age_seconds'],'', $entry['hitcount'],'
Show all entries

The user cache is not available. Enable the user cache by using wincache.ucenabled directive in php.ini file.

The variable with this key does not exist in the user cache.

User Cache Entry Information
Key
Value Type
Size
Total Time To Live (in seconds)
Total Age (in seconds)
Hit Count
User Cache Entry Content
Session Cache Overview
Cache scope
Cache uptime
Cached entries
Hits
Misses
Total memory
Available memory
Memory overhead
', "\n"; echo '', "\n"; echo '', "\n"; echo '', "\n"; echo '', "\n"; echo '', "\n"; echo '', "\n"; echo "\n"; if ($count++ > CACHE_MAX_ENTRY && !$show_all_ucache_entries){ echo ''; break; } } ?>
Session cache entries
Key name Value type Value size Total TTL Total age Hit Count
', get_trimmed_string( $entry['key_name'], PATH_MAX_LENGTH ),'', $entry['value_type'], '', convert_bytes_to_string( $entry['value_size'] ), '', $entry['ttl_seconds'],'', $entry['age_seconds'],'', $entry['hitcount'],'
Show all entries

The session cache is not enabled. To enable session cache set the session handler in php.ini to wincache, for example: session.save_handler=wincache.

Resolve Path Cache Overview
Cached entries
Total memory
Available memory
Memory overhead
', "\n"; echo '', "\n"; echo '', "\n"; echo "\n"; } ?>
Resolve path cache entries
Resolve path Subkey data
', get_trimmed_string( $entry['resolve_path'], PATH_MAX_LENGTH ),'', get_trimmed_string( $entry['subkey_data'], SUBKEY_MAX_LENGTH ), '