Live data from Hacker News

Composer – Disable GC when computing deps and refs

github.com

131–135 of 135 posts

Re: Composer – Disable GC when computing deps and refs

#131
post #120

The commit is great. I love that the comments have spiraled completely out of control. At this point, 30 minutes after the link was posted, the comment thread is now a competition to see who can post the best gif. I know we're serious here, but stuff like this reminds me why I love the internet so much. It's fun to cut loose once in a while.

pictures/gifs don't belong in github comments. this is the dumbest thing.

Strongly disagree. My team puts images in comments to document visual design changes. Occasionally, we'll even drop in an animated gif to illustrate a workflow/process. These can be extremely helpful in code review.

Re: Composer – Disable GC when computing deps and refs

#132
post #55

For those looking for a technical explanation, the PHP garbage collector in this case is probably wasting a ton of CPU cycles trying to collect thousands of objects (a LOT of objects are created to represent all the inter-package rules when solving dependencies) during the solving process. It keeps trying and trying as objects are allocated and it can not collect anything but still has to check them all every time it…

> It keeps trying and trying as objects are allocated

Worse. GC gets triggered just by assigning references, allocation isn't even needed.

Re: Composer – Disable GC when computing deps and refs

#133

Earlier quoted context omitted.

Out of curiosity what tools do you use for profiling and finding these sorts of things? Plain old xdebug, xhprof, or other things? I'm going to have to jump into debugging a fairly large Symfony application within the next couple months and am on the look out for good tools to help me along.

Traditionally xdebug/xhprof were pretty decent, but xhprof has been a bit abandoned since facebook uses HHVM now. There are two new commercial condenters though that came out in the last few months: Blackfire.io and QafooLabs.com Both have announced support for showing GC time in profiles as a result of today's noise :) https://twitter.com/beberlei/status/539816149303955456 https://twitter.com/symfony_en/status/53981…

Xhprof is maintained by Phacility. They did pick up on this[1], but it's not as easy as one might think.

[1] https://secure.phabricator.com/T6675

Re: Composer – Disable GC when computing deps and refs

#134
post #133

Earlier quoted context omitted.

Traditionally xdebug/xhprof were pretty decent, but xhprof has been a bit abandoned since facebook uses HHVM now. There are two new commercial condenters though that came out in the last few months: Blackfire.io and QafooLabs.com Both have announced support for showing GC time in profiles as a result of today's noise :) https://twitter.com/beberlei/status/539816149303955456 https://twitter.com/symfony_en/status/53981…

Xhprof is maintained by Phacility. They did pick up on this[1], but it's not as easy as one might think. [1] https://secure.phabricator.com/T6675

Thanks for the correction, I wasn't aware that was part of what phabricator extracted out of facebook :)

Re: Composer – Disable GC when computing deps and refs

#135

I remember story of my friend in algorithmic contest for high school students in Poland (which are quite hard). He solved problems correctly, but in his implementation he got to check in every iteration of loop if a collection still got any elements. He used col.size()==0 instead of col.isEmpty(). The first was O(n) and it fucked up all performance.

That's a bug.

Not really, some containers have a linear-time size by design. The canonical example is a linked list in which you wish to keep the splice-another-list-at-middle time linear.
Post reply on HN