Avatar ·

Java में 2 * (i * i) , 2 * i * i से तेज़ क्यों है?

सभी को नमस्ते! मैं Java में गुणन के प्रदर्शन की तुलना करने के लिए एक सरल बेंचमार्क लिख रहा हूँ। मैंने एक अजीब व्यवहार देखा: `2 * (i * i)` एक्सप्रेशन वाला कोड `2 * i * i` की तुलना में लगातार तेज़ चलता है। यहाँ एक उदाहरण है:\n\n```java\npublic class Test {\n public static void main(String[] args) {\n long start = System.nanoTime();\n long sum = 0;\n for (int i = 0; i < 1_000_000_000; i++) {\n sum += 2 * i * i; // धीमा\n }\n System.out.println(sum);\n System.out.println("Time: " + (System.nanoTime() - start) / 1_000_000 + " ms");\n }\n}\n```\n\nयदि `2 * i * i` को `2 * (i * i)` से बदल दिया जाए, तो निष्पादन समय लगभग आधा हो जाता है! मुझे उम्मीद थी कि कोई अंतर नहीं होगा, क्योंकि गणितीय रूप से यह समान है। शायद यह गणना के क्रम से संबंधित है और