[MediaWiki-commits] [Gerrit] Use "prepend-autoloader": false - change (mediawiki/vendor)

2014-12-02 Thread jenkins-bot (Code Review)
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 
Gerrit-Reviewer: Aude 
Gerrit-Reviewer: BryanDavis 
Gerrit-Reviewer: Chad 
Gerrit-Reviewer: Legoktm 
Gerrit-Reviewer: Tim Starling 
Gerrit-Reviewer: jenkins-bot <>

___
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Use "prepend-autoloader": false - change (mediawiki/vendor)

2014-12-01 Thread Tim Starling (Code Review)
Tim Starling has uploaded a new change for review.

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

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(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/vendor 
refs/changes/88/176888/1

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: newchange
Gerrit-Change-Id: I451234d16d494fbfd62a4c955d8ca7020baaf5a0
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/vendor
Gerrit-Branch: master
Gerrit-Owner: Tim Starling 

___
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits