मैंने 1000
x के दो मैट्रिक्स बनाए 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()
माप के लिए इस्तेमाल किया