jenkins-bot has submitted this change and it was merged.
Change subject: Use "prepend-autoloader": false
......................................................................
Use "prepend-autoloader": false
Composer's autoloader is slow, taking about 63µs per class, whereas
MediaWiki's is fast, taking about 7µs per class. This adds up to an
overhead of about 13% of CPU time on short requests such as API calls.
On those same short requests, MediaWiki's autoloader finds most of the
classes. So it makes sense to run it first, before the two Composer
autoloaders. So change the config so that composer passes
$prepend=false to spl_autoload_register().
Also change composer version from some random version to some other
random version, per the usual convention.
Change-Id: I451234d16d494fbfd62a4c955d8ca7020baaf5a0
---
M composer.json
M composer/ClassLoader.php
M composer/autoload_real.php
3 files changed, 8 insertions(+), 4 deletions(-)
Approvals:
Legoktm: Looks good to me, approved
jenkins-bot: Verified
diff --git a/composer.json b/composer.json
index bbbe8f6..26931f2 100644
--- a/composer.json
+++ b/composer.json
@@ -23,6 +23,7 @@
"config": {
"autoloader-suffix": "_mediawiki_vendor",
"preferred-install": "dist",
- "vendor-dir": "."
+ "vendor-dir": ".",
+ "prepend-autoloader": false
}
}
diff --git a/composer/ClassLoader.php b/composer/ClassLoader.php
index 4433649..4a56396 100644
--- a/composer/ClassLoader.php
+++ b/composer/ClassLoader.php
@@ -56,7 +56,10 @@
public function getPrefixes()
{
- return call_user_func_array('array_merge', $this->prefixesPsr0);
+ if (!empty($this->prefixesPsr0)) {
+ return call_user_func_array('array_merge', $this->prefixesPsr0);
+ }
+ return array();
}
public function getPrefixesPsr4()
diff --git a/composer/autoload_real.php b/composer/autoload_real.php
index a339aa3..ad07dbd 100644
--- a/composer/autoload_real.php
+++ b/composer/autoload_real.php
@@ -19,7 +19,7 @@
return self::$loader;
}
- spl_autoload_register(array('ComposerAutoloaderInit_mediawiki_vendor',
'loadClassLoader'), true, true);
+ spl_autoload_register(array('ComposerAutoloaderInit_mediawiki_vendor',
'loadClassLoader'), true, false);
self::$loader = $loader = new \Composer\Autoload\ClassLoader();
spl_autoload_unregister(array('ComposerAutoloaderInit_mediawiki_vendor',
'loadClassLoader'));
@@ -38,7 +38,7 @@
$loader->addClassMap($classMap);
}
- $loader->register(true);
+ $loader->register(false);
return $loader;
}
--
To view, visit https://gerrit.wikimedia.org/r/176888
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: I451234d16d494fbfd62a4c955d8ca7020baaf5a0
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/vendor
Gerrit-Branch: master
Gerrit-Owner: Tim Starling <[email protected]>
Gerrit-Reviewer: Aude <[email protected]>
Gerrit-Reviewer: BryanDavis <[email protected]>
Gerrit-Reviewer: Chad <[email protected]>
Gerrit-Reviewer: Legoktm <[email protected]>
Gerrit-Reviewer: Tim Starling <[email protected]>
Gerrit-Reviewer: jenkins-bot <>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits