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

  • dirkgently1

    dirkgently1

    13 NİSAN 2006
  • ExcelTutorials

    ExcelTutoria

    2 Mayıs 2009
  • Max Lee

    Max Lee

    18 AĞUSTOS 2006