Benchmark
- Dart kursu
- İleri seviye
- Ders 73/83
- 5 dk
benchmark ile performans ölçümünü öğrenirsin.
Benchmark
benchmark, bir kod parçasının hızını ölçmektir. Dart'ta package:benchmark_harness paketi kullanılır. BenchmarkBase sınıfından türeyen bir sınıf yazarsın; run yöntemi ölçülecek kodu içerir, report sonuçu yazdırır.
Örnek: class SortBenchmark extends BenchmarkBase yazıp run içinde bir listeyi sıralarsın. warmup ile ısıtma türü, run ile asıl ölçüm yapılır. Sonuç her çalıştırmanın mikrosaniye cinsinden süresidir; kod değişikliklerinin performans etkisini görürsün.
BenchmarkBase sınıfı
BenchmarkBase, benchmark_harness paketinin temel sınıfıdır. Üç yöntemi geçersiz kılarsın: warmup (ısıtma), run (ölçülen kod), teardown (temizlik). Kurucuda super('ad') ile bir ad verirsin.
Örnek: class SortBenchmark extends BenchmarkBase { SortBenchmark() : super('sort'); @override void run() { [3, 1, 2].sort(); } }. SortBenchmark().report(); çağrısı ölçümü yapar ve sonuçu yazdırır. Bu, kod değişikliklerinin performans etkisini görmek için kullanılır. Isıtma türü, JIT derleyicinin sıcak koda girmesini sağlar; böylece asıl ölçüm daha tutarlı olur.
Uygulama SortBenchmark sınıfı
import 'package:benchmark_harness/benchmark_harness.dart'; satırını ekle. SortBenchmark sınıfını tanımla: BenchmarkBase sınıfından türet, kurucuda super('sort') çağır, run yönteminde [3, 1, 2].sort() yap. main içinde print('Benchmark: ölçüm hazır') ekle.
Başlangıç kodu
// benchmark_harness paketini içe aktar
// SortBenchmark sınıfını tanımla (BenchmarkBase, super, run)
void main() {
// ölçüm bilgisini yazdır
}Örnek çözüm
import 'package:benchmark_harness/benchmark_harness.dart';
class SortBenchmark extends BenchmarkBase {
SortBenchmark() : super('sort');
@override
void run() {
[3, 1, 2].sort();
}
}
void main() {
print('Benchmark: ölçüm hazır');
}Beklenen çıktı
Benchmark: ölçüm hazır
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 benchmark ne ölçer?
- Performans Doğru cevap
- Bellek kullanımı
- Doğruluk
- Güvenlik
Açıklama: benchmark performans (hız) ölçer.
2 BenchmarkBase türetme
class SortBenchmark extends ____ { @override void run() { [3, 1, 2].sort(); } }
class SortBenchmark extends BenchmarkBase { @override void run() { [3, 1, 2].sort(); } }
Açıklama: SortBenchmark, BenchmarkBase sınıfından türetilir.
3 Benchmark parçalarını eşleştir
| Kavram | Anlamı |
|---|---|
BenchmarkBase |
Temel sınıf |
run |
Ölçülen kod |
warmup |
Isıtma türü |
report |
Sonucu yazar |