Profiling
- Kotlin kursu
- Uzman
- Ders 37/47
- 5 dk
JVM profiling ve JMH ile performans ölçümünü öğrenirsin.
Profiling nedir?
Profiling, bir programın hangi bölümünün yavaş olduğunu ölçme işlemidir. Kotlin/JVM'de en yaygın araç JMH (Java Microbenchmark Harness) kütüphanesidir.
JMH, bir metodu @Benchmark ile işaretler ve nanosaniye hassasiyetinde ölçer. Sonuç ns/op (operasyon başına nanosaniye) olarak raporlanır. İyi bir benchmark, ısınma (warmup) iterasyonları ve birden fazla ölçüm içerir. Bu dersteki profileInfo modeli konsepti basit bir örnekle gösterir.
JMH kurulumu
JMH bir Gradle eklentisiyle projeye eklenir. Benchmark metotları @Benchmark ile işaretlenir; @BenchmarkMode ölçüm kipini belirler.
Örnek: @Benchmark fun work(): Int { return 42 }. JMH bu metodu birçok kez çalıştırır, ısınma türündan sonra ölçüme başlar. Sonuçlar CSV veya JSON olarak çıkarılabilir. Yanlış benchmark (ölçüm içinde nesne yaratma) yanıltıcı sonuç verir; bu yüzden benchmark metotları sade tutulur.
Uygulama profileInfo yaz
fun profileInfo(): String tanımla. "JMH" döndürsün. main içinde println(profileInfo()) yaz.
Başlangıç kodu
// profileInfo fonksiyonunu ekle
fun main() {
// profiling bilgisini yazdır
}Örnek çözüm
fun profileInfo(): String = "JMH"
fun main() {
println(profileInfo())
}Beklenen çıktı
JMH
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 JMH neyi ölçer?
JMH measures small-scale performance.- Disk G/Ç
- Bellek kullanımı
- Mikro performans Doğru cevap
- Ağ gecikmesi
Açıklama: JMH metot düzeyinde mikro performans ölçer.
2 @Benchmark satırını tamamla
@Benchmark fun ____(): Int { return 42 }
@Benchmark fun work(): Int { return 42 }
Açıklama: @Benchmark fun work() JMH'nin ölçeceği metottur.
3 JMH parçalarını eşle
| Kavram | Anlamı |
|---|---|
JMH |
Benchmark kütüphanesi |
@Benchmark |
Metot işareti |
@BenchmarkMode |
Ölçüm kipi |
ns/op |
Nano saniye/operasyon |