I can do that, but it does int x = 
Integer.valueOf(12).intdiv(Integer.valueOf(2)).intValue(). So there is still 
the overhead of boxing and unboxing, which doesn’t exist for other primitive 
operations, and intdiv itself performs some reflection magic as well. What I’m 
wondering is if Java is strictly required if performance is a concern with 
division.

Jason

From: Søren Berg Glasius [mailto:soe...@glasius.dk]
Sent: Friday, October 23, 2015 5:16 PM
To: users@groovy.incubator.apache.org
Subject: Re: Integer primitive division

Hi,

I think you can just do

12.intdiv(2)

it will return a java.lang.Number so you will have to cast it to an 
java.lang.Integer

Best regards / Med venlig hilsen,
Søren Berg Glasius

Hedevej 1, Gl. Rye, 8680 Ry, Denmark
Mobile: +45 40 44 91 88, Skype: sbglasius
--- Press ESC once to quit - twice to save the changes.

fre. 23. okt. 2015 kl. 22.47 skrev Winnebeck, Jason 
<jason.winneb...@windstream.com<mailto:jason.winneb...@windstream.com>>:
Is there any way to perform primitive integer division in Groovy compile static 
mode? If I do:

(int)(12/2)

Then it coverts 12 and 2 to Integer objects, calls a method that performs 
BigDecimal division, then calls “as int” (not just intValue) on the result, 
which itself does instanceof checks.

I tried intdiv, and it is more efficient, but it still converts to and from 
Integer objects so that it can do A.intValue() / B.intValue(), and storing that 
result in an Integer itself.

I see if I just do 12 + 2, it does a true primitive operation in the bytecode. 
Is there any way to perform primitive division in Groovy the same way it is 
done in Java?

Jason Winnebeck
Software Engineer III Contractor - IT Software Development | Windstream
600 Willowbrook Office Park, Rochester, NY 14450
jason.winneb...@windstream.com<mailto:jason.winneb...@windstream.com> | 
windstreambusiness.com<http://windstreambusiness.com>
o: 585.794-4585

________________________________
This email message and any attachments are for the sole use of the intended 
recipient(s). Any unauthorized review, use, disclosure or distribution is 
prohibited. If you are not the intended recipient, please contact the sender by 
reply email and destroy all copies of the original message and any attachments.

Reply via email to