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

  • L- Crysis

    L- Crysis

    30 Aralık 2011
  • Phandroid

    Phandroid

    26 Ocak 2009
  • ThePhestor

    ThePhestor

    22 Mart 2011