Jackmcbarn has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/180380

Change subject: Only use mw.ustring when necessary
......................................................................

Only use mw.ustring when necessary

mw.ustring is really really slow. I've discovered that in a lot of modules
on enwiki, upwards of 2/3 of the total runtime gets used when mw.html
calls mw.ustring.gsub. This change checks whether any Unicode characters
are present, and if not, calls string.gsub instead.

Change-Id: Ia50061584be3901ae7428354c449236225c318db
---
M engines/LuaCommon/lualib/mw.html.lua
1 file changed, 4 insertions(+), 3 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Scribunto 
refs/changes/80/180380/1

diff --git a/engines/LuaCommon/lualib/mw.html.lua 
b/engines/LuaCommon/lualib/mw.html.lua
index c143266..371e4a0 100644
--- a/engines/LuaCommon/lualib/mw.html.lua
+++ b/engines/LuaCommon/lualib/mw.html.lua
@@ -93,9 +93,10 @@
 local function cssEncode( s )
        -- XXX: I'm not sure this character set is complete.
        -- bug #68011: allow delete character (\127)
-       return mw.ustring.gsub( s, '[^\32-\57\60-\127]', function ( m )
-               return string.format( '\\%X ', mw.ustring.codepoint( m ) )
-       end )
+       return ( s:find( '[^%z\1-\127]' ) and mw.ustring or string )
+               .gsub( s, '[^\32-\57\60-\127]', function ( m )
+                       return string.format( '\\%X ', mw.ustring.codepoint( m 
) )
+               end )
 end
 
 -- Create a builder object. This is a separate function so that we can show the

-- 
To view, visit https://gerrit.wikimedia.org/r/180380
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ia50061584be3901ae7428354c449236225c318db
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Scribunto
Gerrit-Branch: master
Gerrit-Owner: Jackmcbarn <jackmcb...@gmail.com>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to