You say it so much better than I ever could!

Kirk

On Dec 18, 2011, at 7:03 PM, Charles Oliver Nutter wrote:

> A-ha, now I understand. So if you have an expensive method that's not
> called frequently enough to beat the decay, it never JITs. Yeah, I
> wonder why that's there. Seems like the JIT should eventually compile
> everything that's getting used enough to reach call thresholds.
> 
> - Charlie
> 
> On Sun, Dec 18, 2011 at 3:01 AM, Kirk <kirk.pepperd...@gmail.com> wrote:
>> Correct me if I'm wrong but ou seem to be describing de optimization.  
>> Counter decay, as I understand it, wacks the value of the counters by 1/2 
>> every 30 seconds.. checking every 1/2 second. So luke warm methods that 
>> never hit the compile threshold before the 30 second time limit will never 
>> be compiled. Flashing the system circumvents this by artificially forcing 
>> the issue... which, I would guess, could result in a less than optimal 
>> compile. I would argue in long running processes it's better to let lukewarm 
>> methods compile and in fact, this is my preferred approach when I see this 
>> happening. I've got a silly benchmark in my performance tuning course that 
>> exercises it. You can see the difference with PrintCompilation turned on as 
>> luke warm methods show up under load and they won't when the system is 
>> lightly loaded.
>> 
>> Regards,
>> Kirk
>> 
>> On Dec 17, 2011, at 10:34 PM, Charles Oliver Nutter wrote:
>> 
>>> CounterDecay is new to me...am I reading the code right when I get
>>> that it basically decays compiled code over time, eventually forcing a
>>> reprofile and recompile of steady-state code?
>>> 
>>> I know there's a SmallTalk impl onindy doing something
>>> similar...periodically, all call sites are flushed and allowed to
>>> rebuild. It's an interesting pattern, but I think you'd eventually
>>> want to decay the decay and stop doing it, eh?
>>> 
>>> It looks like you can turn it off at least... -XX:-UseCounterDecay
>>> 
>>> - Charlie
>>> 
>>> On Sat, Dec 17, 2011 at 2:18 PM, Kirk <kirk.pepperd...@gmail.com> wrote:
>>>> Slightly off topic but... since inlining was mentioned.... One of the 
>>>> problems I've encountered with low latency applications are luke warm 
>>>> methods running in less busy installations. These can result in response 
>>>> that often slower by a factor 5x or greater than installations that are 
>>>> busier. In call cases this tracked to CounterDecay. Solution was to either 
>>>> flash the server to pop the counters or simply turn off counter decay. 
>>>> Azul doesn't use counter decay and I'm wondering if people have considered 
>>>> simply pulling it out or turning it off by default?
>>>> 
>>>> Regards,
>>>> Kirk
>>>> 
>>>> On Dec 17, 2011, at 9:04 PM, Charles Oliver Nutter wrote:
>>>> 
>>>>> On Sat, Dec 17, 2011 at 1:10 PM, Rémi Forax <fo...@univ-mlv.fr> wrote:
>>>>>> So there is a bug in the way the inlining budget is computed.
>>>>>> The pattern doesn't use any side methods is the fast path,
>>>>>> only method handle adapters so it should not entail the
>>>>>> inlining budget at all.
>>>>>> 
>>>>>> I've only tested on small examples, so it was always fully inlined
>>>>>> but I think it worth investigating why there is a problem with
>>>>>> the inlining budget.
>>>>> 
>>>>> In my case, I believe Christian determined it was an inlining issue.
>>>>> When I added this pattern into all compiled Ruby code, it bumped up
>>>>> some budget to the point that hot paths stopped inlining. I suspected
>>>>> that it might be NodeCountInlinigCutoff, which currently does not
>>>>> discount MH chains, and Christian said that was indeed possible.
>>>>> 
>>>>> The other half of the bug is that when indy + MH chain does not
>>>>> inline, performance is *dismal*. I believe John's upcoming rework of
>>>>> the inlining logic is supposed to fix both issues.
>>>>> 
>>>>>> Or it's not an inlining budget problem, the other problem I see
>>>>>> is that if the code is not yet JITed, it's slow, far slower than
>>>>>> a field access even a volatile one, so if the method is not hot
>>>>>> but only warm, you may have trouble.
>>>>> 
>>>>> That's certainly true. I doubt it affects most code, though, since if
>>>>> it's hot enough for you to notice that it's slow, it's probably hot
>>>>> enough to JIT.
>>>>> 
>>>>> - Charlie
>>>>> 
>>>>> --
>>>>> You received this message because you are subscribed to the Google Groups 
>>>>> "JVM Languages" group.
>>>>> To post to this group, send email to jvm-languages@googlegroups.com.
>>>>> To unsubscribe from this group, send email to 
>>>>> jvm-languages+unsubscr...@googlegroups.com.
>>>>> For more options, visit this group at 
>>>>> http://groups.google.com/group/jvm-languages?hl=en.
>>>>> 
>>>> 
>>>> --
>>>> You received this message because you are subscribed to the Google Groups 
>>>> "JVM Languages" group.
>>>> To post to this group, send email to jvm-languages@googlegroups.com.
>>>> To unsubscribe from this group, send email to 
>>>> jvm-languages+unsubscr...@googlegroups.com.
>>>> For more options, visit this group at 
>>>> http://groups.google.com/group/jvm-languages?hl=en.
>>>> 
>>> 
>>> --
>>> You received this message because you are subscribed to the Google Groups 
>>> "JVM Languages" group.
>>> To post to this group, send email to jvm-languages@googlegroups.com.
>>> To unsubscribe from this group, send email to 
>>> jvm-languages+unsubscr...@googlegroups.com.
>>> For more options, visit this group at 
>>> http://groups.google.com/group/jvm-languages?hl=en.
>>> 
>> 
>> --
>> You received this message because you are subscribed to the Google Groups 
>> "JVM Languages" group.
>> To post to this group, send email to jvm-languages@googlegroups.com.
>> To unsubscribe from this group, send email to 
>> jvm-languages+unsubscr...@googlegroups.com.
>> For more options, visit this group at 
>> http://groups.google.com/group/jvm-languages?hl=en.
>> 
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "JVM Languages" group.
> To post to this group, send email to jvm-languages@googlegroups.com.
> To unsubscribe from this group, send email to 
> jvm-languages+unsubscr...@googlegroups.com.
> For more options, visit this group at 
> http://groups.google.com/group/jvm-languages?hl=en.
> 

-- 
You received this message because you are subscribed to the Google Groups "JVM 
Languages" group.
To post to this group, send email to jvm-languages@googlegroups.com.
To unsubscribe from this group, send email to 
jvm-languages+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/jvm-languages?hl=en.

Reply via email to