मैंने 1000x के दो मैट्रिक्स बनाए 1000:
पहला मैट्रिक्स: Oऔर #।
दूसरी मैट्रिक्स: Oऔर B।
निम्नलिखित कोड का उपयोग करते हुए, पहले मैट्रिक्स को पूरा करने में 8.52 सेकंड लगे:
Random r = new Random();
for (int i = 0; i < 1000; i++) {
for (int j = 0; j < 1000; j++) {
if(r.nextInt(4) == 0) {
System.out.print("O");
} else {
System.out.print("#");
}
}
System.out.println("");
}
इस कोड के साथ, दूसरे मैट्रिक्स को पूरा करने में 259.152 सेकंड लगे:
Random r = new Random();
for (int i = 0; i < 1000; i++) {
for (int j = 0; j < 1000; j++) {
if(r.nextInt(4) == 0) {
System.out.print("O");
} else {
System.out.print("B"); //only line changed
}
}
System.out.println("");
}
नाटकीय रूप से अलग-अलग समय के पीछे क्या कारण है?
जैसा कि टिप्पणियों में सुझाया गया है, मुद्रण में केवल कुछ सेकंड System.out.print("#");लगते हैं 7.8871, जबकि System.out.print("B");देता है still printing...।
जैसा कि अन्य लोगों ने बताया कि यह उनके लिए सामान्य रूप से काम करता है, मैंने उदाहरण के लिए Ideone.com की कोशिश की , और कोड के दोनों टुकड़े एक ही गति से निष्पादित होते हैं।
परीक्षण की स्थितियाँ:
- मैंने नेटबेंस 7.2 से इस परीक्षण को चलाया , आउटपुट इसके कंसोल में
- मैंने
System.nanoTime()माप के लिए इस्तेमाल किया
