benchmarkpurge.php
来自「php 开发的内容管理系统」· PHP 代码 · 共 65 行
PHP
65 行
<?php/** * Squid purge benchmark script * @package MediaWiki * @subpackage Maintenance *//** */require_once( "commandLine.inc" );/** @todo document */function benchSquid( $urls, $trials = 1 ) { $start = wfTime(); for( $i = 0; $i < $trials; $i++) { SquidUpdate::purge( $urls ); } $delta = wfTime() - $start; $pertrial = $delta / $trials; $pertitle = $pertrial / count( $urls ); return sprintf( "%4d titles in %6.2fms (%6.2fms each)", count( $urls ), $pertrial * 1000.0, $pertitle * 1000.0 );}/** @todo document */function randomUrlList( $length ) { $list = array(); for( $i = 0; $i < $length; $i++ ) { $list[] = randomUrl(); } return $list;}/** @todo document */function randomUrl() { global $wgServer, $wgArticlePath; return $wgServer . str_replace( '$1', randomTitle(), $wgArticlePath );}/** @todo document */function randomTitle() { $str = ''; $length = mt_rand( 1, 20 ); for( $i = 0; $i < $length; $i++ ) { $str .= chr( mt_rand( ord('a'), ord('z') ) ); } return ucfirst( $str );}if( !$wgUseSquid ) { wfDie( "Squid purge benchmark doesn't do much without squid support on.\n" );} else { printf( "There are %d defined squid servers:\n", count( $wgSquidServers ) ); #echo implode( "\n", $wgSquidServers ) . "\n"; if( isset( $options['count'] ) ) { $lengths = array( intval( $options['count'] ) ); } else { $lengths = array( 1, 10, 100 ); } foreach( $lengths as $length ) { $urls = randomUrlList( $length ); $trial = benchSquid( $urls ); print "$trial\n"; }}?>
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?