These are chat archives for ManageIQ/manageiq/performance

11th
Oct 2017
Keenan Brock
@kbrock
Oct 11 2017 15:17
Does ruby 2.3.1 GC compact memory?
(Maybe when converting to an "old" object)
If so, then an object can move in memory.
I'm guessing that would change an object's object_id
Joe Rafaniello
@jrafanie
Oct 11 2017 15:34
@kbrock it doesn't compact memory. It only moves on a fork environment when the object or other locations on the OS page are modified such as when the object is marked as old
AFAIK objects are allocated and don't move... that's some of the work Aaron was working on... to try to keep old objects and young objects segregated
Joe Rafaniello
@jrafanie
Oct 11 2017 15:40
https://github.com/ko1/nakayoshi_fork was created to get around the problem of GC marking shared objects as old in the age field in the object header, causing a CoW, by GC'ing 3 times before the fork actually happens, so the objects are old before fork and therefore won't be modified by the GC
Keenan Brock
@kbrock
Oct 11 2017 15:47
@jrafanie if you want to segregate old and young, then you either need to know ahead of time what will become old, or you need to move the young (that became old) from the young side over to the old side. no?
Chris Arcand
@chrisarcand
Oct 11 2017 15:48
@kbrock You can watch pretty much any of aaron's talks for the last year to hear all about that.
Keenan Brock
@kbrock
Oct 11 2017 15:49
@chrisarcand thnx
Keenan Brock
@kbrock
Oct 11 2017 16:14
@chrisarcand hmm. only thing I've figured out so far is "it is pretty hard to make shit scale"
Jason Frey
@Fryguy
Oct 11 2017 17:35
@kbrock I don't think tenderlove ever committed compacting GC
they are running it at GitHub, but it's not public
Chris Arcand
@chrisarcand
Oct 11 2017 17:57
Not committed to core but It is public: https://github.com/github/ruby/tree/gc-compact
Joe Rafaniello
@jrafanie
Oct 11 2017 18:00
Sad, no activity other than rebasing since May