CodeBlanks Logo Icon CodeBlanks

Memory

memory kullanımını öğrenirsin.

Bellek kullanımı

Dart'ta bellek kullanımını dart:io kütüphanesindeki ProcessInfo sınıfı verir. ProcessInfo.currentRss o anki resident set size (RSS) bayt sayısını, ProcessInfo.maxRss ise çalışma süresince ulaşılan en yüksek değeri verir.

RSS, işlemin o an RAM'de tuttuğu bellek miktarıdır. Çöp toplayıcı (garbage collector) belleği otomatik yönetir; kullanılmayan nesneleri toplar. Bellek kullanımı çalışma sırasında değişir; bu yüzden RSS değeri her çalıştırmada farklıdır. Performans analizi için RSS değerini zaman içinde izlemek gerekir; tek bir ölçüm kesin bilgi vermez.

Çöp toplayıcı

Dart'ın çöp toplayıcısı (garbage collector, GC) kullanılmayan nesneleri otomatik bulur ve belleği geri kazanır. Geliştirici malloc/free gibi elle bellek yönetimi yapmaz. GC, nesnelerin erişilebilirlik (reachability) grafiğini tarar; kökten (root) ulaşılamayan nesneleri çöp olarak işaretler.

Bellek optimizasyonu için: büyük listeleri gereksiz tutma, final ile sabit referanslar kullan, akış (stream) ve StreamSubscription bittiğinde cancel() çağır. Bu, bellek sızıntısını (leak) önler. Çöp toplayıcı düzenli aralıklarla çalışır; yoğun nesne üretimi GC basıncını artırır ve performansı düşürebilir.

Uygulama Bellek API bilgisi

import 'dart:io'; satırını ekle. main içinde print('Bellek API: ProcessInfo.currentRss') ve print('Peak API: ProcessInfo.maxRss') satırlarını ekle. RSS değeri her çalıştırmada farklı olduğundan gerçek değer yerine API adını yazdırıyoruz.

Başlangıç kodu

main.dart
// dart:io kütüphanesini içe aktar

void main() {
  // bellek API bilgilerini yazdır
}

Örnek çözüm

main.dart
import 'dart:io';

void main() {
  print('Bellek API: ProcessInfo.currentRss');
  print('Peak API: ProcessInfo.maxRss');
}

Beklenen çıktı

Bellek API: ProcessInfo.currentRss
Peak API: ProcessInfo.maxRss

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Bellek parçalarını eşleştir

Kavram Anlamı
ProcessInfo Bellek API
currentRss O anki RSS
maxRss Peak değer
dart:io Kütüphane

2 currentRss ne verir?

  • Süre
  • CPU yüzdesi
  • O anki RSS Doğru cevap
  • Disk alanı

Açıklama: currentRss o anki bellek (RSS) miktarını verir.

3 ProcessInfo çağrısı

Soru
print('Bellek: ${____.currentRss}');
Cevap
print('Bellek: ${ProcessInfo.currentRss}');

Açıklama: ProcessInfo.currentRss o anki RSS'i verir.

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