Geçenlerde java öğrenmeye başladı ederken daha döngü için ve ben türneden daha hızlı döngü
aşağıda programı loop--
public class ForLoopExample {
public static void main(String[] args) {
long startTime = System.nanoTime();
for(int a = 0; a < 10; a++) {
System.out.println(a);
}
long endTime = System.nanoTime();
System.out.println("for loop timing = " + (endTime - startTime) + " ns");
System.out.println("loop completed");
}
}
ve için hızını belirler --- bu kelimler am çıkış zamanlama: döngü zamanı için
= 853716 ns
ise döngüsünün hızını belirleyen programı:
public class WhileLoopExample {
public static void main(String[] args) {
int a=0;
long startTime = System.nanoTime();
while(a < 10) {
System.out.println(a);
a++;
}
long endTime = System.nanoTime();
System.out.println("while loop timing = " + (endTime - startTime) + " ns");
}
}
ise fazla on ile çevrim zamanlaması = 928.358 ns
Why does this happen a detailed explanation would be appreciated.
Bir fark olmamalıdır. Testinizi, sadece 10 olan, neredeyse temsil etmeyen, daha fazla döngü yinelemeleriyle tekrar deneyin. – f1sh
Ayrıca bkz http://stackoverflow.com/questions/504103/how-do-i-write-a-correct-micro-benchmark-in-java –
Emin değilim ama sanmıyorum eğer JVM arkaplan çalışması o zaman 'while' değişkeni' a 'sadece ihtiyaç duyulduğunda kayıt olarak yüklenebilir. Ve 'for' döngü değişkeninde 'a 'döngü çalışırken her zaman kaydedilebilir. Üzgünüm, İngilizce benim ana dilim değil. –