getLazyLoadedAttribute() accounts for about 3% of load.php CPU usage in production, mostly because each ResourceLoaderFileModule calls it for SkinLessImportPaths, and makeCacheKey() is quite slow. So, cache lazy attributes in a process cache. There was already $this->lazyAttributes, which was unused since the original commit. I assume it was meant to be used for this, so I used it. I also added a process cache for makeCacheKey() which is invalidated when the queue changes, so that requests for different lazy attributes in the same request will be fast. Change-Id: I83d22b58bb9bf5d06d934d5d2eef8ae7d5f72857 |
||
|---|---|---|
| .. | ||
| ExtensionDependencyError.php | ||
| ExtensionJsonValidationError.php | ||
| ExtensionJsonValidator.php | ||
| ExtensionProcessor.php | ||
| ExtensionRegistry.php | ||
| Processor.php | ||
| VersionChecker.php | ||