From: Koichi Sasada <ko1@...>
Date: 2018-05-01T12:27:15+09:00
Subject: [ruby-core:86791] Re: [Ruby trunk Feature#14723] [WIP] sleepy GC

On 2018/05/01 12:18, Eric Wong wrote:
>> `gc_rest()` do all of rest steps.  Is it intentional?
> 
> I thought about that myself.  I haven't measured impact much and
> decided to have less code.

On worst case, it takes few seconds. We have "incremental" mechanism so 
we should use same incremental technique here too.

>> Another tiny comments:
>>
>>> +    static const struct timespec zero;
>>
>> `zero` doesn't seem to be initialized. intentional?
> 
> Yes,  static and global are variables are auto-initialized to zero.
> AFAIK this is true of all C compilers.

Sorry, I missed `static const`. Thank you.

>> Note:
>>
>> After introducing Guild, getting `contended` status should be high-cost (we need to use lock to see this info).
>> However, we can eliminate this check if we shrink the target: only have one Guild (== current MRI).
> 
> So one objspace will be shared by different guilds?

Yes.

> I think sweep phase can be made
> lock-free in the future.

Agreed.

-- 
// SASADA Koichi at atdot dot net

Unsubscribe: <mailto:ruby-core-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>