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

  • Diogo Oliveira

    Diogo Olivei

    4 HAZİRAN 2006
  • Jonnyriddlin1

    Jonnyriddlin

    4 Ocak 2007
  • Trulia

    Trulia

    29 Kasım 2006