Measuring performance changes from applying 4837946 patch (original) (raw)
Brian Burkhalter brian.burkhalter at oracle.com
Wed Jun 5 16:16:18 UTC 2013
- Previous message: Measuring performance changes from applying 4837946 patch
- Next message: Measuring performance changes from applying 4837946 patch
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On Jun 5, 2013, at 8:26 AM, Aleksey Shipilev wrote:
Aleksey :
Sorry: I had not finished my first coffee yet.
b) the annotations you are using on each method, can flow up to class-level annotation, and will be inherited by all the @GMB methods; I was not aware of this. Yes, and with the daizy-fresh JMH, it is even possible to move the remaining data upwards to the class level: http://mail.openjdk.java.net/pipermail/jmh-dev/2013-June/000074.html c) it is a good idea to initialize the State fields within the @Setup method, because we guarantee correct initialization JMM-wise (try to run your benchmark on non-x86 hardware, and you can occasionally see the NPEs, because genericFactor1/2 might be null; you can also make the same effect with "final" on fields, but that wouldn't be the generic case). That is good to know also. I read about State Fixtures but did not know of this behavior. I take that back, the JMH samples are correct. JMH will initialize the states with the worker threads, and publish it properly for you. You can keep the init the way you have it now. The only culprit is that if State is getting reused between the benchmark runs, it is a good idea to re-initialize it with @Setup. But, since BigIntegers are "immutable", you don't actually care.
Thanks for the further clarifications.
Brian
- Previous message: Measuring performance changes from applying 4837946 patch
- Next message: Measuring performance changes from applying 4837946 patch
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]