On Fri, Dec 19, 2008 at 6:26 AM, Charles Oliver Nutter <
charles.nut...@sun.com> wrote:

> avishek.dasgupta wrote:
>
>>
>> Charles Oliver Nutter-2 wrote:
>>
>>> Interesting numbers...I think we need more information, however, like
>>> what version of JRuby you ran and a short description of how the application
>>> works. There have been threading-related bottlenecks reported over time, but
>>> we've solved many of those issues.
>>>
>>> Also 1.1.6 is coming out today, which includes a number of these fixes.
>>>
>>> - Charlie
>>>
>>>
>> The JRuby version I used was 1.1.5 with Java 6
>> Additional VM arguments used were:
>> -Xmx768M -Xms768M -Djruby.objectspace.enabled=false
>> -Djruby.thread.pooling=true
>>
>> I got JRuby 1.1.6 and ran the application again and got these numbers:
>> Threads   JRuby   Java
>> =======================
>> 5             41.62     31.20
>> 10           77.04     31.45
>> 15          103.14    31.45
>> 20          126.24    31.41
>> 25          173.93    32.17
>>
>
> Ok, so there's improvement, but it still degrades pretty severely. If
> possible, can you also try running with -Djruby.compile.fastest=true? It may
> not work, but it does remove some overhead (highly experimental).
>
> If I were to venture a guess, it's possible there's lock contention slowing
> things down (lost of concurrent lookups to synchronized resources somewhere?
> probably relating to the Java objects antering the system?) or we've got a
> single piece of data being mutated rapidly across threads (we found a
> similar issue where a single static int was being incremented rapidly by
> different threads, causing cache flushes to kill performance). We need to
> put the clamps on your app and see what we can find...
>
> - Charlie
>

Just another guess: Maybe GC slows things down? Have you tried parallel GC?

Reply via email to