X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=maintenance%2Fbenchmarks%2Fbench_utf8_title_check.php;h=62bb0fa114395c55d22f91424c2103b9a7634dd0;hb=49748181dd56ec97e7ba7c13e684a16abceb3cc0;hp=078293eb770a1ac51f6ca459c539376ababb7c5b;hpb=59183f670a9e60975632414b25b05f16edf06485;p=lhc%2Fweb%2Fwiklou.git diff --git a/maintenance/benchmarks/bench_utf8_title_check.php b/maintenance/benchmarks/bench_utf8_title_check.php index 078293eb77..b2f7e96138 100644 --- a/maintenance/benchmarks/bench_utf8_title_check.php +++ b/maintenance/benchmarks/bench_utf8_title_check.php @@ -24,26 +24,24 @@ require_once __DIR__ . '/Benchmarker.php'; /** - * This little benchmark executes the regexp used in Language->checkTitleEncoding() - * and compares its execution time against that of mb_check_encoding, if available. + * This little benchmark executes the regexp formerly used in Language->checkTitleEncoding() + * and compares its execution time against that of mb_check_encoding. * * @ingroup Benchmark */ -class bench_utf8_title_check extends Benchmarker { - - private $canRun; - +class BenchUtf8TitleCheck extends Benchmarker { private $data; public function __construct() { parent::__construct(); - $this->data = array( + // @codingStandardsIgnoreStart Ignore long line warnings. + $this->data = [ "", "United States of America", // 7bit ASCII "S%C3%A9rie%20t%C3%A9l%C3%A9vis%C3%A9e", "Acteur%7CAlbert%20Robbins%7CAnglais%7CAnn%20Donahue%7CAnthony%20E.%20Zuiker%7CCarol%20Mendelsohn", - // This comes from bug 36839 + // This comes from T38839 "Acteur%7CAlbert%20Robbins%7CAnglais%7CAnn%20Donahue%7CAnthony%20E.%20Zuiker%7CCarol%20Mendelsohn%7C" . "Catherine%20Willows%7CDavid%20Hodges%7CDavid%20Phillips%7CGil%20Grissom%7CGreg%20Sanders%7CHodges%7C" . "Internet%20Movie%20Database%7CJim%20Brass%7CLady%20Heather%7C" @@ -58,40 +56,32 @@ class bench_utf8_title_check extends Benchmarker { . "Saison%207%20des%20Experts%7CSaison%208%20des%20Experts%7CSaison%209%20des%20Experts%7C" . "Sara%20Sidle%7CSofia%20Curtis%7CS%C3%A9rie%20t%C3%A9l%C3%A9vis%C3%A9e%7CWallace%20Langham%7C" . "Warrick%20Brown%7CWendy%20Simms%7C%C3%89tats-Unis" - ); - - $this->canRun = function_exists ( 'mb_check_encoding' ); + ]; + // @codingStandardsIgnoreEnd - if ( $this->canRun ) { - $this->mDescription = "Benchmark for using a regexp vs. mb_check_encoding to check for UTF-8 encoding."; - mb_internal_encoding( 'UTF-8' ); - } else { - $this->mDescription = "CANNOT RUN benchmark using mb_check_encoding: function not available."; - } + $this->addDescription( "Benchmark for using a regexp vs. mb_check_encoding " . + "to check for UTF-8 encoding." ); } public function execute() { - if ( !$this->canRun ) { - return; - } - $benchmarks = array(); - foreach ($this->data as $val) { - $benchmarks[] = array( - 'function' => array( $this, 'use_regexp' ), - 'args' => array( rawurldecode ( $val ) ) - ); - $benchmarks[] = array( - 'function' => array( $this, 'use_regexp_non_capturing' ), - 'args' => array( rawurldecode ( $val ) ) - ); - $benchmarks[] = array( - 'function' => array( $this, 'use_regexp_once_only' ), - 'args' => array( rawurldecode ( $val ) ) - ); - $benchmarks[] = array( - 'function' => array( $this, 'use_mb_check_encoding' ), - 'args' => array( rawurldecode ( $val ) ) - ); + $benchmarks = []; + foreach ( $this->data as $val ) { + $benchmarks[] = [ + 'function' => [ $this, 'use_regexp' ], + 'args' => [ rawurldecode( $val ) ] + ]; + $benchmarks[] = [ + 'function' => [ $this, 'use_regexp_non_capturing' ], + 'args' => [ rawurldecode( $val ) ] + ]; + $benchmarks[] = [ + 'function' => [ $this, 'use_regexp_once_only' ], + 'args' => [ rawurldecode( $val ) ] + ]; + $benchmarks[] = [ + 'function' => [ $this, 'use_mb_check_encoding' ], + 'args' => [ rawurldecode( $val ) ] + ]; } $this->bench( $benchmarks ); print $this->getFormattedResults(); @@ -101,26 +91,25 @@ class bench_utf8_title_check extends Benchmarker { function use_regexp( $s ) { $this->isutf8 = preg_match( '/^([\x00-\x7f]|[\xc0-\xdf][\x80-\xbf]|' . - '[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xf7][\x80-\xbf]{3})+$/', $s ); + '[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xf7][\x80-\xbf]{3})+$/', $s ); } function use_regexp_non_capturing( $s ) { // Same as above with a non-capturing subgroup. $this->isutf8 = preg_match( '/^(?:[\x00-\x7f]|[\xc0-\xdf][\x80-\xbf]|' . - '[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xf7][\x80-\xbf]{3})+$/', $s ); + '[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xf7][\x80-\xbf]{3})+$/', $s ); } function use_regexp_once_only( $s ) { // Same as above with a once-only subgroup. $this->isutf8 = preg_match( '/^(?>[\x00-\x7f]|[\xc0-\xdf][\x80-\xbf]|' . - '[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xf7][\x80-\xbf]{3})+$/', $s ); + '[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xf7][\x80-\xbf]{3})+$/', $s ); } function use_mb_check_encoding( $s ) { $this->isutf8 = mb_check_encoding( $s, 'UTF-8' ); } - } -$maintClass = 'bench_utf8_title_check'; +$maintClass = 'BenchUtf8TitleCheck'; require_once RUN_MAINTENANCE_IF_MAIN;