On Thu, Jan 3, 2019 at 11:26 PM Сергей Цыпанов
wrote:
>
> I've run into this performance effect while investigating creation of
> Spring's ConcurrentReferenceHashMap,
> it turned out that it used Array::newInstance to create array of
> References stored in a map's Segment:
>
Slight tangent -
Hi,
I've also taken a look at your microbenchmark and seen a few regressions
from 9 through 12, some of which I've identified - and some that might
be (partially) actionable. Mostly related to recent additions of low
overhead heap sampling and allocator/GC changes. All of the blame is in
Hi Claes,
thanks for the explanation, I suspected something like that.
I've run into this performance effect while investigating creation of Spring's
ConcurrentReferenceHashMap,
it turned out that it used Array::newInstance to create array of References
stored in a map's Segment:
private
Hi,
what you're seeing specifically here is likely the native overhead:
Array::newInstance calls into the native method Array::newArray, and C1
(TierStopAtLevel=1) doesn't have an intrinsic for this, while C2 does.
C1 and the interpreter will instead call into
Hello,
-XX:TieredStopAtLevel=1 flag is often used in some applications (e.g. Spring
Boot based) to reduce start-up time.
With this flag I've spotted huge performance degradation of Array::newInstance
comparing to plain constructor call.
I've used this benchmark
@State(Scope.Thread)