On 15/03/2009, Henri Yandell <flame...@gmail.com> wrote:
> On Sun, Mar 15, 2009 at 11:20 AM, sebb <seb...@gmail.com> wrote:
>  > On 15/03/2009, Henri Yandell <flame...@gmail.com> wrote:
>  >> On Sun, Mar 15, 2009 at 5:08 AM, sebb <seb...@gmail.com> wrote:
>  >>  > On 15/03/2009, Henri Yandell <flame...@gmail.com> wrote:
>  >>
>  >>  >>
>  >>
>  >> >>  Anyway... amusing play stuff when I should be sleeping; and not
>  >>  >>  believing FindBugs too much. Need to try for Double, Long etc; maybe
>  >>  >>  this lore holds more true there. Plus maybe it's Apple's JVM being
>  >>  >>  interesting and this holds true in Sun land.
>  >>  >
>  >>  > I think you treat equal times unfairly - they are neither slower nor 
> faster.
>  >>  > Also, the variables are not used, so the compiler could well optimise
>  >>  > the loop away.
>  >>
>  >>
>  >> Agreed, but I didn't see an equals at any point in the output so it's
>  >>  again lost in the noise.
>  >>
>  >>  I think I'd have seen radical differences if the compiler was
>  >>  optimizing the loop away as one or both of the numbers would have been
>  >>  0 (or at least constant).
>  >>
>  >
>  > I get very different results using your code and the one in the link
>  > (I editted that to provide the loop count on the command line).
>  >
>  > The other test consistently showed that valueOf was faster.
>
>
> It's a good article - though they're testing different things. That
>  code is testing that 0 can be created many times etc which should be
>  faster for valueOf's cache. Mine was testing every number.

Sorry, I'd not noticed that. Oops!

That changes things to much closer to what you are seeing.

Using -server seems to make things worse for both cases, at least
until the loop count reaches 5-10 million.

>  Reading that caching only happens for a small set of numbers, it makes
>  sense that valueOf is going to be worse, and that smaller sets are
>  faster. So I think findbugs is being quite wrong in this case unless
>  Integers are in the cache of 255 cached values. It'd be a surprise if
>  Long/Float/Double were faster as you'd not expect them to have large
>  caches, but you would expect Char (due to predominant ascii use),
>  Short, Boolean and Byte to be worth using valueOf on. Something to
>  test :)

In Sun JDK 1.5:
Short and Long have the same cache range as Integer.
Float and Double don't cache.
Character: <=127
Byte -128 - +127 i.e. all of them.

>
>  Hen
>
>  ---------------------------------------------------------------------
>  To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
>  For additional commands, e-mail: dev-h...@commons.apache.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
For additional commands, e-mail: dev-h...@commons.apache.org

Reply via email to