Can anyone help me as sponsor?
On May 25, 2014 2:08 AM, "Otávio Gonçalves de Santana" <otavioj...@java.net>
wrote:

> Really Happy to hear that.
> Done.
>
>
> On Sat, May 24, 2014 at 5:10 PM, Andrej Golovnin <
> andrej.golov...@gmail.com> wrote:
>
>> Hi Otávio,
>>
>> it would be nice, if you would not modify the classes
>>  sun.reflect.UnsafeXXXFieldAccessorImpl.
>> This classes should be changed as a part of the fix for the issue
>> JDK-5043030.
>> The patch for this issue is already in work.
>>
>> Best regards,
>> Andrej Golovnin
>>
>> On 24.05.2014, at 16:34, Otávio Gonçalves de Santana <otavioj...@java.net>
>> wrote:
>>
>> > The Boolean class has cache for true and false and using it, will save
>> > memory and will faster than using create new instance of boolean.
>> > Using JMH[1] with a code test[2] the result was:
>> > Benchmark                                                   Mode
>> Samples
>> >        Mean      Mean error        Units
>> > m.BooleanBenchmark.newInstanceBoolean    thrpt        20
>>  49801.326
>> >     369.897          ops/s
>> > m.BooleanBenchmark.newInstanceString       thrpt        20
>> > 365.080       27.537            ops/s
>> > m.BooleanBenchmark.valueOfBoolean           thrpt        20
>>  764906233.316
>> > 9623009.653      ops/s
>> > m.BooleanBenchmark.valueOfString              thrpt        20
>> > 371.174       28.216          ops/s
>> >
>> >
>> >
>> > The diff is on attachment or can is downloading the webdrev here:
>> >
>> https://dl.dropboxusercontent.com/u/16109193/open_jdk/boolean_instance_of.zip
>> >
>> > [1] http://openjdk.java.net/projects/code-tools/jmh/
>> >
>> > [2]
>> >
>> > @State(Scope.Thread)
>> >
>> > @OutputTimeUnit(TimeUnit.SECONDS)
>> >
>> > public class BooleanBenchmark {
>> >
>> > private static final int SIZE = 1_000_000;
>> >
>> > private List<String> booleanString;
>> >
>> > private boolean[] booleans;
>> >
>> > {
>> >
>> > booleans = new boolean[SIZE];
>> >
>> > booleanString = new ArrayList<>(SIZE);
>> >
>> > for (int index = 0; index < SIZE; index++) {
>> >
>> > if (index % 2 == 0) {
>> >
>> > booleans[index] = true;
>> >
>> > booleanString.add(Boolean.TRUE.toString());
>> >
>> > } else {
>> >
>> > booleans[index] = false;
>> >
>> > booleanString.add(Boolean.FALSE.toString());
>> >
>> > }
>> >
>> > }
>> >
>> > }
>> >
>> > @GenerateMicroBenchmark
>> >
>> > public void valueOfBoolean() {
>> >
>> >
>> > for(boolean b: booleans) {
>> >
>> > Boolean result = b;
>> >
>> > }
>> >
>> > }
>> >
>> > @GenerateMicroBenchmark
>> >
>> > public void valueOfString() {
>> >
>> > for(String b: booleanString) {
>> >
>> > Boolean result = Boolean.valueOf(b);
>> >
>> > }
>> >
>> > }
>> >
>> > @GenerateMicroBenchmark
>> >
>> > public void newInstanceBoolean() {
>> >
>> >
>> > for(boolean b: booleans) {
>> >
>> > Boolean result = new Boolean(b);
>> >
>> > }
>> >
>> > }
>> >
>> > @GenerateMicroBenchmark
>> >
>> > public void newInstanceString() {
>> >
>> > for(String b: booleanString) {
>> >
>> > Boolean result = new Boolean(b);
>> >
>> > }
>> >
>> > }
>> >
>> > }
>> >
>> > --
>> > Atenciosamente.
>> >
>> > Otávio Gonçalves de Santana
>> >
>> > blog:     http://otaviosantana.blogspot.com.br/
>> > twitter: http://twitter.com/otaviojava
>> > site:     http://www.otaviojava.com.br
>> > (11)     98255-3513
>> > <boolean.diff>
>>
>>
>
>
> --
> Atenciosamente.
>
> Otávio Gonçalves de Santana
>
> blog:     http://otaviosantana.blogspot.com.br/
> twitter: http://twitter.com/otaviojava
> site:     http://www.otaviojava.com.br
> (11)     98255-3513
>
>

Reply via email to