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

  • KIT KAT

    KIT KAT

    3 EKİM 2005
  • superemposed

    superemposed

    25 Aralık 2007
  • Tracy Hairston

    Tracy Hairst

    22 Mayıs 2009