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

  • FUNKER530 - Veteran Community & Combat Footage

    FUNKER530 -

    25 Ocak 2007
  • George McCarron

    George McCar

    29 Mayıs 2013
  • jbignacio

    jbignacio

    13 Mart 2006