aboutsummaryrefslogtreecommitdiffstats
path: root/gems
diff options
context:
space:
mode:
authorko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2015-03-18 09:02:10 +0000
committerko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2015-03-18 09:02:10 +0000
commitec4624b0f47ee6a99036b1711bd5746cdd99da33 (patch)
treebd853ce990695ca4895052354726d49381c05fe7 /gems
parent3b1e28036e318d06b5e2f4f65f709ad483aa40ec (diff)
downloadruby-ec4624b0f47ee6a99036b1711bd5746cdd99da33.tar.gz
* gc.c (gc_writebarrier_generational): add an alternative write
barrier (WB) implementation. When finding reference from [Old obj] to [New obj] by WB, current implementation marks [Old obj] as remembered old objects and marks chilldren of [Old obj] at the beggining of marking. Added (but disabled) code changes current behaviour. This fix promote [New obj] to old and marks as a remembered old object. We can assume "new objects referred from old objects are maybe long-lived old objects". Disadvantage of added algorithm is we may promote unwilling short-lived objects. For example, consider many new objects push and pop to an old stack object. All of new objects (short-lived objects) promote to old objects unexpectedly. To compare these behaviour, I add this new code (but disabled it). git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50006 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'gems')
0 files changed, 0 insertions, 0 deletions