Nikerabbit has uploaded a new change for review.

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


Change subject: Replace loop with array lookup in TranslateMetadata::get
......................................................................

Replace loop with array lookup in TranslateMetadata::get

TranslateMetadata::get is called at least once for each message
group during ApiQueryMessageGroups with priority props.

Profiling on my local wiki which has about 1000 message groups:

ms/call  kb/call
0.98     0.87     ApiQueryMessageGroups::formatGroup-priority
0.01     0.89     ApiQueryMessageGroups::formatGroup-priority (new)
2208.07 16301.88  API:messagegroupsbefore
1078.48 16319.99  API:messagegroupsbefore (new)

https://mingle.corp.wikimedia.org/projects/internationalization/cards/3854

Bug: 53748
Change-Id: I6244b0d92c554b5121f20441da9cf81d5414e239
---
M utils/TranslateMetadata.php
1 file changed, 6 insertions(+), 5 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Translate 
refs/changes/95/98095/1

diff --git a/utils/TranslateMetadata.php b/utils/TranslateMetadata.php
index 1f24896..540128c 100644
--- a/utils/TranslateMetadata.php
+++ b/utils/TranslateMetadata.php
@@ -22,13 +22,14 @@
        public static function get( $group, $key ) {
                if ( self::$cache === null ) {
                        $dbr = wfGetDB( DB_SLAVE );
-                       self::$cache = $dbr->select( 'translate_metadata', '*', 
array(), __METHOD__ );
+                       $res = $dbr->select( 'translate_metadata', '*', 
array(), __METHOD__ );
+                       foreach ( $res as $row ) {
+                               self::$cache[$row->tmd_group][$row->tmd_key] = 
$row->tmd_value;
+                       }
                }
 
-               foreach ( self::$cache as $row ) {
-                       if ( $row->tmd_group === $group && $row->tmd_key === 
$key ) {
-                               return $row->tmd_value;
-                       }
+               if ( isset( self::$cache[$group][$key] ) ) {
+                       return self::$cache[$group][$key];
                }
 
                return false;

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I6244b0d92c554b5121f20441da9cf81d5414e239
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Translate
Gerrit-Branch: master
Gerrit-Owner: Nikerabbit <niklas.laxst...@gmail.com>

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

Reply via email to