sys.getsizeof
- Python kursu
- Uzman
- Ders 39/47
- 5 dk
sys.getsizeof ile bellek ölçmeyi öğrenirsin.
sys.getsizeof nedir?
sys.getsizeof(obj) bir nesnenin bellekte kapladığı bayt sayısını verir. Bu, bellek optimizasyonu için temel araçtır.
Örneğin sys.getsizeof([1, 2, 3]) bir listenin, sys.getsizeof((1, 2, 3)) bir demetin boyutunu verir. Liste, dinamik olması nedeniyle demetten daha çok bellek kullanır. Bu ölçüm, hangi veri yapısının daha verimli olduğunu belirlemeye yardımcı olur. Büyük veri kümelerinde küçük farklar önemli olabilir.
Liste ve demet karşılaştırması
Bir liste, büyüyebilmek için fazladan kapasite tutar; bu yüzden aynı öğelere sahip bir demetten daha büyüktür. sys.getsizeof ile bu farkı görürsün.
Örneğin [1, 2, 3] yaklaşık 88 bayt, (1, 2, 3) ise 64 bayttır. Demet değişmez olduğu için fazladan kapasiteye gerek yoktur. Bu, sabit veriler için demet tercih edilmesinin bir nedenidir. getsizeof yalnızca kabonun boyutunu verir; içindeki öğelerin boyutunu saymaz. Tam boyut için tüm öğeleri tek tek ölçmek gerekir.
Uygulama getsizeof ile boyut karşılaştır
import sys ile modülü içe aktar. a = [1, 2, 3] ve b = (1, 2, 3) tanımla. sys.getsizeof(a) ve sys.getsizeof(b) değerlerini ayrı satırlarda yazdır.
Başlangıç kodu
# liste ve demet oluştur
# boyutlarını yazdırÖrnek çözüm
import sys
a = [1, 2, 3]
b = (1, 2, 3)
print(sys.getsizeof(a))
print(sys.getsizeof(b))Beklenen çıktı
88 64
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 getsizeof kavramlarını eşleştir
| Kavram | Anlamı |
|---|---|
sys.getsizeof |
Bayt boyutu |
list |
Dinamik kapsayıcı |
tuple |
Değişmez kapsayıcı |
bayt |
Bellek birimi |
2 Hangisi daha az bellek kullanır?
import sys
print(sys.getsizeof([1,2,3]))
print(sys.getsizeof((1,2,3)))- İkisi eşit
- Liste
- Demet (tuple) Doğru cevap
- Duruma göre değişir
Açıklama: Demet değişmez olduğu için fazladan kapasite tutmaz; daha az bellek kullanır.
3 getsizeof çağrısını tamamla
import sys
size = sys.____([1, 2, 3])
import sys
size = sys.getsizeof([1, 2, 3])
Açıklama: sys.getsizeof(obj) bayt boyutunu verir.