'u farklı zaman süresi gerektirir. Benzer bloklarla yürütme süresini kontrol etmeye çalışıyordum. Örnek kod ve çıkış aşağıdadırAynı kod bloğu,
,
public class Tester {
public static void main(String[] args) {
System.out.println("Run 1");
List<Integer> list = new ArrayList<>();
int i = 0;
long st = System.currentTimeMillis();
while (++i < 10000) {
list.add(i);
}
System.out.println("Time taken :" + (System.currentTimeMillis() - st));
System.out.println("Run 2");
int j = 0;
List<Integer> list2 = new ArrayList<>();
long ST = System.currentTimeMillis();
while (++j < 10000) {
list2.add(j);
}
System.out.println("Time taken :" + (System.currentTimeMillis() - ST));
System.out.println("Run 3");
int k = 0;
List<Integer> list3 = new ArrayList<>();
long ST2 = System.currentTimeMillis();
while (++k < 10000) {
list3.add(k);
}
System.out.println("Time taken :" + (System.currentTimeMillis() - ST2));
}
}
Çıktı
Run 1
Time taken :6
Run 2
Time taken :3
Run 3
Time taken :1
Neden yürütme farklı zaman alıyorum?
Yanıtınız programının Her geçiş için değişir muhtemelen olacaktır .. Neden tam olarak aynı değerleri bekliyoruz .. Yan notu: Bu alınan zamanın kıyaslanması için doğru yol değildir. – TheLostMind
Bu ortam bağımlıdır, yürütme süresi için herhangi bir denetiminiz yoktur, bu ortamlar için farklılık gösterebilir. Ayrıca her koşuda farklı zaman kazanabilirsiniz. Ex Ben 1 Zaman alınan kod Run sonucunu şu olsun: Alınan 2 Zaman 1 çalıştırın: 0 Yarışı 3 Zaman alınan: 1 –
@TheLostMind ben bu tür davranışları fark ve meraklandırdın edildi. Çevresel faktörlerin bu davranışa nasıl yol açtığını açıklarsanız harika olur. – Kajal