SORU
6 ŞUBAT 2012, PAZARTESİ


Nasıl Scala yöntemleri profile?

Scala yöntem çağrıları profil standart bir yolu nedir?

İhtiyacım olan şey bir yöntem etrafında, başlangıç ve Sayaçlarını durdurmak için kullanabileceğiniz kullanarak kanca.

Java programlama yönü, aspectJ, yöntemleri profilli tutma ve bayt kodu aynı elde etmek için enjekte etmek için kullanıyorum.

Bir grup fonksiyon sürecinde herhangi bir statik yazarak kaybetmeden ve bir işlevi önce ve sonra çağrılacak define nerede, Scala, daha doğal bir yolu var mı?

CEVAP
6 ŞUBAT 2012, PAZARTESİ


İçin zamanlama ölçmek için istediğiniz kod değiştirmeden bunu yapmak istiyor musunuz? Eğer kodunu değiştirmek için bir sakıncası yok, eğer doğru değilse, o zaman böyle bir şey yapabilirsin:

def time[R](block: => R): R = {
    val t0 = System.nanoTime()
    val result = block    // call-by-name
    val t1 = System.nanoTime()
    println("Elapsed time: "   (t1 - t0)   "ns")
    result
}

// Now wrap your method calls, for example change this...
val result = 1 to 1000 sum

// ... into this
val result = time { 1 to 1000 sum }

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • K-391

    K-391

    23 EKİM 2012
  • MobileTechReview

    MobileTechRe

    6 HAZİRAN 2008
  • thepoke64738

    thepoke64738

    17 HAZİRAN 2011