Java speed access array index and temporary variable
•
Java
What is java faster Directly access the array index multiple times, or save the value of the array index to a new variable and use it for subsequent calculations?
Access index
if ((shape.vertices[0].x >= fromX && shape.vertices[0].x <= toX) || // left side of shape in screen (shape.vertices[0].x <= fromX && shape.vertices[0].x + shape.width >= fromX) || // right side of shape in screen (shape.vertices[0].x >= fromX && shape.vertices[0].x + shape.width <= toX)) { // shape fully in screen // ... }
Temporary variable
float x = shape.vertices[0].x; float y = shape.vertices[0].y; if ((x >= fromX && x <= toX) || // left side of shape in screen (x <= fromX && x + shape.width >= fromX) || // right side of shape in screen (x >= fromX && x + shape.width <= toX)) { // shape fully in screen // ... }
Solution
The second method must be faster However, you can use the final keyword to provide more help:
final float x = shape.vertices[0].x; final float y = shape.vertices[0].y; final int rightEdge = x + shape.width; if ((x >= fromX && x <= toX) || // left side of shape in screen (x <= fromX && rightEdge >= fromX) || // right side of shape in screen (x >= fromX && rightEdge <= toX)) { // shape fully in screen // ... }
Of course, it is not a significant improvement (but it is still an improvement and makes the intention clear) You can read this discussion: http://old.nabble.com/Making-copy-of-a-reference-to-ReentrantLock-tt30730392.html#a30733348
The content of this article comes from the network collection of netizens. It is used as a learning reference. The copyright belongs to the original author.
THE END
二维码