Memory
- Dart kursu
- İleri seviye
- Ders 75/83
- 5 dk
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
// dart:io kütüphanesini içe aktar
void main() {
// bellek API bilgilerini yazdır
}Örnek çözüm
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ı
print('Bellek: ${____.currentRss}');
print('Bellek: ${ProcessInfo.currentRss}');
Açıklama: ProcessInfo.currentRss o anki RSS'i verir.