CodeBlanks Logo Icon CodeBlanks

sys.getsizeof

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

main.py
# liste ve demet oluştur
# boyutlarını yazdır

Örnek çözüm

main.py
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?

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

Soru
import sys
size = sys.____([1, 2, 3])
Cevap
import sys
size = sys.getsizeof([1, 2, 3])

Açıklama: sys.getsizeof(obj) bayt boyutunu verir.

Uzman bölümündeki tüm dersler