近期 github 上 PHP composer 提交了一行代码, gc_disable()就让效率暴增了。
https://github.com/composer/composer/commit/ac676f47f7bbc619678a29deae097b6b0710b799
/**
* Run installation (or update)
*
* @return int 0 on success or a positive error code on failure
*
* @throws \Exception
*/
public function run()
{
gc_disable();
垃圾回收禁用了,效率暴增,性能提升了70%。这 commit 引发了很多人回复,超多搞笑留言图片。
http://php.net/manual/zh/function.gc-disable.php
有一条评论解释了这个问题
大意是当年创建了很多对象,gc就会对这些对象进行扫描以便清理。但是很多对象是正在使用而无法清理的,因此gc就白白的扫描了。
参考资料
http://blog.wu-boy.com/2014/12/optimizing-php-composer-performance/#more-5584