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

  • Adam Khoury

    Adam Khoury

    23 Ocak 2008
  • EmbarkToHeaven

    EmbarkToHeav

    3 EYLÜL 2007
  • LivestrongWoman

    LivestrongWo

    1 Aralık 2011