Micro-optimize Language::isMultiByte()
authorOri Livneh <ori@wikimedia.org>
Wed, 26 Aug 2015 01:13:14 +0000 (18:13 -0700)
committerOri Livneh <ori@wikimedia.org>
Wed, 26 Aug 2015 01:22:21 +0000 (18:22 -0700)
The xenon logs on performance.wikimedia.org show this function as being on-CPU
about 1% of the time, making it a candidate for optimization. The version in
this patch is about 30-50% faster in my benchmarks.

Change-Id: I26385ade7600fc11965d94468b57e41ec257de51

languages/Language.php

index b698beb..370e2ed 100644 (file)
@@ -2838,7 +2838,7 @@ class Language {
         * @return bool
         */
        function isMultibyte( $str ) {
-               return (bool)preg_match( '/[\x80-\xff]/', $str );
+               return strlen( $str ) !== mb_strlen( $str );
        }
 
        /**