[#27380] [Bug #2553] Fix pthreads slowness by eliminating unnecessary sigprocmask calls — Dan Peterson <redmine@...>

Bug #2553: Fix pthreads slowness by eliminating unnecessary sigprocmask calls

21 messages 2010/01/03

[#27437] [Feature #2561] 1.8.7 Patch reduces time cost of Rational operations by 50%. — Kurt Stephens <redmine@...>

Feature #2561: 1.8.7 Patch reduces time cost of Rational operations by 50%.

9 messages 2010/01/06

[#27447] [Bug #2564] [patch] re-initialize timer_thread_{lock,cond} after fork — Aliaksey Kandratsenka <redmine@...>

Bug #2564: [patch] re-initialize timer_thread_{lock,cond} after fork

18 messages 2010/01/06

[#27635] [Bug #2619] Proposed method: Process.fork_supported? — Hongli Lai <redmine@...>

Bug #2619: Proposed method: Process.fork_supported?

45 messages 2010/01/20
[#27643] [Feature #2619] Proposed method: Process.fork_supported? — Luis Lavena <redmine@...> 2010/01/21

Issue #2619 has been updated by Luis Lavena.

[#27678] Re: [Feature #2619] Proposed method: Process.fork_supported? — Yukihiro Matsumoto <matz@...> 2010/01/22

Hi,

[#27684] Re: [Feature #2619] Proposed method: Process.fork_supported? — Charles Oliver Nutter <headius@...> 2010/01/22

On Thu, Jan 21, 2010 at 11:27 PM, Yukihiro Matsumoto <matz@ruby-lang.org> w=

[#27708] Re: [Feature #2619] Proposed method: Process.fork_supported? — Yukihiro Matsumoto <matz@...> 2010/01/22

Hi,

[#27646] Re: [Bug #2619] Proposed method: Process.fork_supported? — Tanaka Akira <akr@...> 2010/01/21

2010/1/21 Hongli Lai <redmine@ruby-lang.org>:

[#27652] Re: [Bug #2619] Proposed method: Process.fork_supported? — Hongli Lai <hongli@...99.net> 2010/01/21

On 1/21/10 5:20 AM, Tanaka Akira wrote:

[#27653] Re: [Bug #2619] Proposed method: Process.fork_supported? — Tanaka Akira <akr@...> 2010/01/21

2010/1/21 Hongli Lai <hongli@plan99.net>:

[#27662] Re: [Bug #2619] Proposed method: Process.fork_supported? — Vladimir Sizikov <vsizikov@...> 2010/01/21

On Thu, Jan 21, 2010 at 10:53 AM, Tanaka Akira <akr@fsij.org> wrote:

[#27698] [Bug #2629] ConditionVariable#wait(mutex, timeout) should return whether the condition was signalled, not the waited time — Hongli Lai <redmine@...>

Bug #2629: ConditionVariable#wait(mutex, timeout) should return whether the condition was signalled, not the waited time

8 messages 2010/01/22

[#27722] [Feature #2635] Unbundle rdoc — Yui NARUSE <redmine@...>

Feature #2635: Unbundle rdoc

14 messages 2010/01/23

[#27757] [Bug #2638] ruby-1.9.1-p37[68] build on aix5.3 with gcc-4.2 failed to run for me because it ignores where libgcc is located. — Joel Soete <redmine@...>

Bug #2638: ruby-1.9.1-p37[68] build on aix5.3 with gcc-4.2 failed to run for me because it ignores where libgcc is located.

10 messages 2010/01/24

[#27778] [Bug #2641] Seg fault running miniruby during ruby build on Haiku — Alexander von Gluck <redmine@...>

Bug #2641: Seg fault running miniruby during ruby build on Haiku

10 messages 2010/01/25

[#27791] [Bug #2644] memory over-allocation with regexp — Greg Hazel <redmine@...>

Bug #2644: memory over-allocation with regexp

12 messages 2010/01/25

[#27794] [Bug #2647] Lack of testing for String#split — Hugh Sasse <redmine@...>

Bug #2647: Lack of testing for String#split

14 messages 2010/01/25

[#27912] [Bug #2669] mkmf find_executable doesn't find .bat files — Roger Pack <redmine@...>

Bug #2669: mkmf find_executable doesn't find .bat files

11 messages 2010/01/27

[#27930] [Bug:trunk] some behavior changes of lib/csv.rb between 1.8 and 1.9 — Yusuke ENDOH <mame@...>

Hi jeg2, or anyone who knows the implementation of FasterCSV,

15 messages 2010/01/28
[#27931] Re: [Bug:trunk] some behavior changes of lib/csv.rb between 1.8 and 1.9 — James Edward Gray II <james@...> 2010/01/28

On Jan 28, 2010, at 10:51 AM, Yusuke ENDOH wrote:

[ruby-core:27540] Re: better GC?

From: Magnus Holm <judofyr@...>
Date: 2010-01-11 16:18:17 UTC
List: ruby-core #27540
Well, Rails itself is single-threaded and so are most of the servers.
It's also fairy common with multi-cores for servers these days (maybe
even for desktop too?). The obvious choice then is a concurrent
garbage collector, which could run in it's own native thread (only
locking the GIL for a small amount of time). Because of the GIL, only
one thread can run at a time and there's no point of an on-the-fly
which simplifies the case quite a lot.

For instance, "Age-Oriented Concurrent Garbage Collection" by Paz,
Petrank, Blackburn separates objects into two generations, but always
collects both heaps. However, the older generation uses
reference-counters which appears to be quite faster. Their
implementation showed a max 2ms pause time, but I assume it will be
even shorter when there's only one thread to stop.

Petrank has also worked on the Stopless-collector which is both
on-the-fly and real-time. It was implemented with "virtually no pause
times, good mutator utilization, and acceptable overheads", and is
next on my reading list. Frampton, Bacon, Cheng and Grove has been
working on a real-time collector which has a 1ms max pause time. Also
worth checking out I assume.

// Magnus Holm



2010/1/11 Gon=C3=A7alo Silva <goncalossilva@gmail.com>:
> That's an interesting idea, Paul. I love it but I think it would imply a =
lot
> of effort from a lot of people, specially because some GC implementations
> will cause breakages on some C extensions.
> Anyway, what would be the best GC implementation for a Rails application?
> Since Rails is one of the most important Ruby projects, growing and being
> used worldwide, I really think that some effort should be put into
> optimizing Ruby for Rails and that includes it's GC.
> ---
> Gon=C3=A7alo S. Silva
> http://goncalossilva.com
>
> im: goncalossilva@gmail.com
> skype: goncalosantaremsilva
> twitter: http://twitter.com/goncalossilva
>
>
> On Mon, Jan 11, 2010 at 14:32, Paul Brannan <pbrannan@atdesk.com> wrote:
>>
>> On Fri, Jan 08, 2010 at 07:37:40AM +0900, Kurt Stephens wrote:
>> > I'm not convinced that the GC is the issue, but I haven't really been
>> > measuring it in production environments. =C2=A0 I think common code or=
 Ruby
>> > semantics that create avoidable garbage is the issue and would be an
>> > issue
>> > regardless of GC technology, including reference counting.
>>
>> Avoiding garbage doesn't solve the problem; if there is a large number
>> of reachable objects, the mark phase can still take a long time. =C2=A0T=
his
>> is why a number of people want a generational collector, because it can
>> reduce the amount of time spent marking objects.
>>
>> IMO it's clear that there is no one-size-fits all option. =C2=A0I wonder=
 how
>> difficult it would be to make the GC pluggable, so alternate GC's could
>> be provided as gems?
>>
>> (obviously there would still be limitations on these GC's; an
>> incremental collector would probably be out of the question).
>>
>> Paul
>>
>>
>
>

In This Thread