Remove the assert in Integer.valueOf() (original) (raw)
Rémi Forax forax at univ-mlv.fr
Fri Apr 27 22:42:48 UTC 2012
- Previous message: Remove the assert in Integer.valueOf()
- Next message: Remove the assert in Integer.valueOf()
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On 04/27/2012 02:14 PM, Ulf Zibis wrote:
Am 23.04.2012 19:35, schrieb Rémi Forax:
Hi guys, I've found a case where assert is harmful because it doesn't play well with Hotspot inlining heuristic. [...] I think it's a good idea to comment this assert.
Hi Ulf,
While you are there: IntegerCache.cache/high/low are static final, so should be named upper case.
Not done because the system property is also spelled in lower case.
Another optimization: public static Integer valueOf(int i) { if (i >= 0) { if (i <= IntegerCache.HIGH)_ _return IntegerCache.POS[i];_ _} else {_ _if (i >= IntegerCache.LOW) return IntegerCache.NEG[~i]; } return new Integer(i); }
Can you explain a little bit more why it's more efficient ? Given that low and high are constant for the JIT, I'm not sure the current code do bounds checking at all.
-Ulf
Rémi
- Previous message: Remove the assert in Integer.valueOf()
- Next message: Remove the assert in Integer.valueOf()
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]