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 > >