New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove GCController #975

Merged
merged 1 commit into from Nov 4, 2016

Conversation

Projects
None yet
1 participant
@ddfreyne
Member

ddfreyne commented Nov 4, 2016

Stop playing around with the GC manually.

Detailed description

Previous versions of Nanoc (3.x) had the problem of occasionally running very slowly due to spending large amounts of time in the garbage collector (79% for one site).

As a temporary workaround until either Nanoc and/or Ruby improved memory handling, I added a GCController which disables and enables the GC at certain times in order to eliminate needless GC activity. I knew from the start that this was a hack and would cause problems, but luckily very few people reported having problems with it—until now, I guess (#972).

Ruby 2.2 and up have generational GC, which greatly reduces the demand on the garbage collector. This should eliminate the need for this GC hack.

Related issues

  • #972 — “Getting "Killed" on Ubuntu 16.04.1 LTS”
Remove GCController
This is causing issues (see #972) and is not so useful anymore on Ruby
2.3+ anyway.

@ddfreyne ddfreyne modified the milestone: 4.3.8 Nov 4, 2016

@ddfreyne

This comment has been minimized.

Show comment
Hide comment
@ddfreyne

ddfreyne Nov 4, 2016

Member

Interesting: removing the GC speed hack leads to a 10%-20% speed improvement for nanoc.ws here.

Member

ddfreyne commented Nov 4, 2016

Interesting: removing the GC speed hack leads to a 10%-20% speed improvement for nanoc.ws here.

@ddfreyne ddfreyne merged commit 2ba84b4 into master Nov 4, 2016

1 check passed

continuous-integration/travis-ci/pr The Travis CI build passed
Details

@ddfreyne ddfreyne deleted the rm-gc-controller branch Nov 4, 2016

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment