SORU
18 Aralık 2013, ÇARŞAMBA


Kıyaslama - neden ikinci döngü daha hızlı Java?

Bu konuyu merak ediyorum.

İşlevi daha hızlı, küçük bir kod oluşturabilirim bu yüzden kontrol etmek istedim ve bir çok kez uyguladım.

public static void main(String[] args) {

        long ts;
        String c = "sgfrt34tdfg34";

        ts = System.currentTimeMillis();
        for (int k = 0; k < 10000000; k  ) {
            c.getBytes();
        }
        System.out.println("t1->"   (System.currentTimeMillis() - ts));

        ts = System.currentTimeMillis();
        for (int i = 0; i < 10000000; i  ) {
            Bytes.toBytes(c);
        }
        System.out.println("t2->"   (System.currentTimeMillis() - ts));

    }

"Döngü daha hızlı, hadoop gelen Bayt sınıfı String sınıfından. işlevi daha hızlı olduğunu düşündüm" ikinci Sonra, döngüler sipariş ve c sonra değiştirdim.() getBytes var daha hızlı. Birçok kez uyguladım, ve sonuç, neden bilmiyorum, ama bir şey ilk kod sonra benim VM bunun sonuçlarını ikinci döngü için daha hızlı olması yürütmek.

CEVAP
18 Aralık 2013, ÇARŞAMBA


Bu klasik java kıyaslama bir konudur. /Etc Fi/JİT kullanmak gibi kod derleme olacak, daha hızlı çalışması sırasında alır.

En az 3000 kez döngü (64 bit bir sunucuda veya 10000) ilk çalıştırma etrafta ölçümleri yapın.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • MagmaRhino

    MagmaRhino

    16 Temmuz 2011
  • ShoSho

    ShoSho

    20 Ocak 2010
  • wafflepwn

    wafflepwn

    14 AĞUSTOS 2008