SORU
21 ŞUBAT 2014, Cuma


Neden baskı "B" baskı " daha önemli ölçüde daha yavaştır;#"?

1000 x iki matris 1000 oluşturdum:

İlk Matrix: O #.
İkinci Matrix: O B.

Aşağıdaki kodu kullanarak, ilk matrix 8.52 saniye sürmüştür:

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("");
 }

Bu kod ile, ikinci matrisin tamamlamak için 259.152 saniye sürdü:

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("");
}

Belirgin bir şekilde farklı çalışma saatleri ardındaki sebep nedir?


Açıklamalarda belirtildiği gibi System.out.print("#"); baskı System.out.print("B"); still printing... sağlarken 7.8871 saniye sürer.

Onlar için normal olarak çalışıyor olduğuna işaret eden diğerleri gibi, örneğin Ideone.com denedim ve kod iki adet aynı hızda çalıştırın.

Test Koşulları:

  • Eclipse bu test konsolun içine onun çıkış 7.2 koştum
  • Ölçümler için System.nanoTime() kullandım

CEVAP
22 ŞUBAT 2014, CUMARTESİ


Tamamen spekülasyonword-wrapping yerine karakter kaydırma yapmaya çalışan bir terminal kullanıyorsun ve davranır sözcük olmayan bir karakter olarak kelime bir karakter ama # B. Ne zaman ulaşır satır sonuna kadar arar ve bir yerde mola hattı, gördüğü bir # hemen ve sonsuza dek mutlu sonları var; oysa B, hadi aramaya devam edin daha uzun ve daha fazla metin için kaydırma olabilir (örneğin pahalı biraz terminalleri, örneğin, çıkış backspaces, sonra Çıkış alanları üzerine harfleri olmak sarılmış).

Ama bu tamamen spekülasyon.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • captainpuppys2000

    captainpuppy

    20 HAZİRAN 2013
  • SDSARG3

    SDSARG3

    14 Mart 2009
  • Tube Time

    Tube Time

    14 Mayıs 2013