CodeBlanks Logo Icon CodeBlanks

Benchmark

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

main.dart
// 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

main.dart
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

Soru
class SortBenchmark extends ____ { @override void run() { [3, 1, 2].sort(); } }
Cevap
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

İleri seviye bölümündeki tüm dersler