一名开发者修改了 composer 一行代码,性能瞬间提升,看完评论我也是醉了

2014-12-03 10:45:11 +08:00
 cai314494687
https://github.com/composer/composer/commit/ac676f47f7bbc619678a29deae097b6b0710b799
6910 次点击
所在节点    程序员
16 条回复
baocaixiong
2014-12-03 10:52:46 +08:00
为何这么吊
dorentus
2014-12-03 11:55:39 +08:00
没看明白。
mcfog
2014-12-03 12:10:31 +08:00
不愧是我大PHP,宇宙最好的编程语言
barbery
2014-12-03 12:11:08 +08:00
哈哈哈哈,太屌了
sophymax
2014-12-03 12:19:15 +08:00
@dorentus 虽然我不是写PHP的 , 但通过gc_disable这句看出来好像是禁止了垃圾回收 , 然后性能就瞬间提高了
raincious
2014-12-03 12:21:54 +08:00
难道发个Commit的评论列表是让各位去娱乐的么?

我不太认为有人真的看过那个Pull里指出的另一个Pull conversation:
https://github.com/composer/composer/pull/3482

以及后续的Issue:
https://github.com/composer/composer/issues/3488
vertion
2014-12-03 12:23:42 +08:00
GC can't clean them up and just wasting CPU time
soli
2014-12-03 13:03:30 +08:00
Github 评论竟然还能上传图片。

并且很方便,直接拖进去就行。
Jaylee
2014-12-03 13:14:06 +08:00
@dorentus


由于PHP的GC是基于引用计数的,为了能够回收循环引用的对象,会在ref count减少但不到0的时候,试图检测并回收循环引用的孤岛对象,但当有效对象的数量及互相引用较大(比如composer中代表包、版本和互相的依赖关系)的时候,这种搜索的开销就会变得非常巨大,造成大量的CPU计算
Lucups
2014-12-03 13:33:02 +08:00
PHP 是世界上最好的编程语言,没有之一!

:)
cai314494687
2014-12-03 13:44:47 +08:00
@dorentus composer在运行的时候会创建大量的对象,这些对象会触发GC机制,而这些对象需要被使用,所以GC无法清除,因此,使用gc_disable禁用GC之后,会节省cpu时间,效率更高。
PrideChung
2014-12-03 13:54:26 +08:00
comment里面囊括了我之前看过的所有搞笑动图 2333
ryd994
2014-12-03 14:17:34 +08:00
我觉得这里的讨论并非没有道理: https://github.com/composer/composer/pull/3482
定期gc_collect_cycles()也无不可
cst4you
2014-12-03 14:36:36 +08:00
dorentus
2014-12-03 14:48:43 +08:00
@sophymax
@cai314494687

嗯。其实我还是不太明白为啥评论里面大家那么欢乐……
chau
2014-12-03 19:16:54 +08:00
我是去看评论里面的图片的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/151147

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX