Middle
Mekkora lesz a tömb súlya a tartalmától és az elemek számától függően?
sobes.tech MI
Válasz az MI-től
Egy tömb mérete a következőktől függ:
- Elemek száma: Minél több elem van, annál több memória szükséges.
- Elemek típusa: Minden elem a típusától (Int, Double, String, Referencia Típus stb.) függően meghatározott mennyiségű bájt foglal.
- A tömb túlterhelése: A tömb maga fix túlterheléssel rendelkezik az információk tárolására a méretről, kapacitásról és más metaadatokról.
Közelítő számítás Swiftben egy tömbre:
- Értéktípusok (Struct, Enum, Int, Double): Minden elem annyi memóriát foglal, mint a típus.
- Referencia típusok (Osztály): Minden elem memóriát foglal az objektum hivatkozásának tárolására (általában 8 bájt 64 bites architektúrán), plusz a heapen lévő objektum által foglalt memóriát.
A specifikus súly változhat a fordító és a processzor architektúrájának optimalizációi miatt.
Példa:
Egy 100 elemű Int típusú tömb (8 bájt 64 bites architektúrán) körülbelül a következőt foglalja:
100 * 8 bájt (az Int mérete) + a tömb túlterhelése.
Egy 100 referencia az ViewModel osztály példányaira mutató tömb esetén:
100 * 8 bájt (a referencia mérete) + a heapen lévő ViewModel példányok által foglalt memória + a tömb túlterhelése.