Sobes.tech
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:

  1. Elemek száma: Minél több elem van, annál több memória szükséges.
  2. 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.
  3. 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.