Junior
Koliko memorije ima stek i hrpa?
sobes.tech АИ
Одговор од АИ
Veličina steka i heap-a nije fiksna i zavisi od više faktora:
-
Stek (Stack):
- Veličina steka se određuje na nivou niti (thread).
- Podrazumevana veličina može varirati u zavisnosti od verzije Androida i implementacije virtuelne mašine (JVM/ART).
- Obično, ova veličina je nekoliko megabajta (npr., 1-8 MB).
- Veličina steka može biti programatski konfigurisana prilikom kreiranja niti, ali se to retko koristi u standardnom Android razvoju.
-
Heap:
- Veličina heap-a se dodeljuje za ceo proces aplikacije.
- Veličina heap-a se dinamički menja tokom rada, povećavajući se po potrebi (do određenog limita).
- Maksimalna veličina heap-a zavisi od uređaja, ukupne količine RAM memorije i konfiguracije sistema.
- Tipična maksimalna veličina heap-a za aplikaciju može biti od desetina do stotina megabajta na mobilnim uređajima.
- Postoji i koncept "large heap" (veliki heap), koji se može zahtevati u manifestu aplikacije (
android:largeHeap="true") da bi se dobila veća maksimalna veličina heap-a, ali to se ne preporučuje zbog mogućih negativnih uticaja na performanse sistema i drugih aplikacija.
Ukratko:
- Stek: nekoliko MB (po niti), fiksan (pri kreiranju niti).
- Heap: desetine/stotine MB (po procesu), dinamičan, ograničen maksimalnim.
Ne postoje tačne univerzalne vrednosti, jer zavise od konkretnog uređaja, verzije OS-a i konfiguracije.