Is it faster to assign a long
value to an int
variable using a cast or is using a long
variable faster?
Or it is a choice, between consuming more memory and processing more?
Here is an example test:
import java.time.Duration;
import java.time.Instant;
public class NanoTest {
final int loop = 20000;
public void testNoCasting() {
long sum = 0;
long time = System.currentTimeMillis();
for (int i = 0; i < loop; i++) {
sum += System.currentTimeMillis() - time;
}
System.out.println(sum);
}
public void testIntCasting() {
int sum = 0;
long time = System.currentTimeMillis();
for (int i = 0; i < loop; i++) {
sum += (int) (System.currentTimeMillis() - time);
}
System.out.println(sum);
}
public static void main(String[] args) {
NanoTest nt = new NanoTest();
Instant start = Instant.now();
nt.testNoCasting(); // or nt.testIntCasting();
Instant end = Instant.now();
System.out.print("Duration: ");
System.out.println(Duration.between(start, end).getNano());
}
}