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