Interesting. I'm curious about the //NOPMD. Has anyone tried removing that and seeing what the warning is?
Jon On Tue, Nov 20, 2018 at 12:12 PM Bruno Baptista <[email protected]> wrote: > Hi Otávio, > > I think that makes sense, It looks like It's the only place in the code > where we have that. > > Cheers > > Bruno Baptista > http://twitter.com/brunobat_ > > > On 20/11/18 12:03, Otávio Gonçalves de Santana wrote: > > While I was studying the code, I found at SingletonEjbObjectHandler.java > > that they are creating a new Boolean instance instead of using the > > Boolean.valueOf. method. > > The boolean wrapper has a singleton instance to both true and false. > > However, it will use when the code uses the Boolean.valueOf method. > > > > Beyond the waste of memory, because they’re creating a new boolean > instance > > every time, it will be slower than the valueOf method. > > > > @Warmup(iterations = 5, time = 1, timeUnit = > > TimeUnit.SECONDS)@Measurement(iterations = 20, time = 1, timeUnit = > > > TimeUnit.SECONDS)@Fork(3)@BenchmarkMode(Mode.AverageTime)@OutputTimeUnit(TimeUnit.NANOSECONDS)@State(Scope.Thread)public > > class FasterReflectionClientBenchmark { > > > > private ThreadLocalRandom random = ThreadLocalRandom.current(); > > > > @Benchmark > > public Boolean newInstance() { > > return new Boolean(random.nextBoolean()); > > } > > > > @Benchmark > > public Boolean valueOf() { > > return Boolean.valueOf(random.nextBoolean()); > > } > > } > > > > Benchmark Mode Cnt Score Obs > > valueOf avgt 60 5,048 —- > > newInstance avgt 60 6,467 (20% slower) > > > > ps: The equals method returns a primitive value if we keep without the > > wrapper, it will automatically do a wrapper using the Boolean.valueOf. > > PR created: https://github.com/apache/tomee/pull/206 > > >
