On 2016-07-06 16:05, Paul Sandoz wrote:
On 6 Jul 2016, at 13:31, Claes Redestad <claes.redes...@oracle.com> wrote:
On 2016-07-06 12:45, Paul Sandoz wrote:
On 6 Jul 2016, at 12:04, Michael Haupt <michael.ha...@oracle.com> wrote:
Hi Paul,
thanks for your comments.
Lazy initialisation of the PerfCounter is good, as is the warning suppression.
I'll let Claes comment on the broader PerfCounter question, as he suggested
using them. I think PerfCounter is a convenient abstraction for what we want to
achieve, but the way it's used here may smell a bit abusive.
Ok.
I know of a number of Java-side PerfCounters created early (and they're rather
lean on dependencies in the first place, a select number of j.u.c.atomic
classes IIRC), so I wouldn't worry about much of a startup penalty here.
Lazy initialization might not save us much, and would hide the counter from
showing up.
I guess what I'm saying is I'm good with webrev.00. :-)
LambdaForm is initiated very early in the startup, and that is gonna change the
order in which other classes are loaded, namely Buffers etc. I am concerned it
might induce a circular dependency with VarHandles and the 166 patches that
will arrive soon, e.g. see use of static AtomicInteger fields in Bits.
If you want to retain the PerfCounter usages i think you may need to make it
lazy.
Ah, right, it's one of the classes the VM preloads, so it'll be loaded
long before anyone actually uses java.lang.invoke. Yes, that might cause
bootstrap issues, and needs to be lazy.
For the record: I perceived a need to have some discoverable event in
case this fallback ever takes effect. A PerfCounter is certainly not be
the best fit for that, but it's readily available and would allow for a
quick and dirty diagnostic. Perhaps it's best to move it to a follow-up
improvement, but I'd prefer to have something in that can be
improved/replaced than nothing at all.
/Claes