iOS Memory Management

Minnehåndtering i iOS var i utgangspunktet ikke-ARC (Automatic Reference Counting), hvor vi har til å beholde og slipp objekter. Nå støtter ARC, og vi trenger ikke å beholde og slipp objekter. Xcode tar seg av jobben automatisk i kompilering

Minne Management Issues

Per Apple dokumentasjon, de to store problemer i minnehåndtering er & minus;.

  • Frigjøre eller overskrive data som fortsatt er i bruk. Det fører til minne korrupsjon og vanligvis resulterer i søknaden din krasjer, eller verre, korrupte brukerdata.

  • Ikke frigjøre data som ikke lenger er i bruk fører til minnelekkasjer. Når tildelte minnet ikke er frigjort, selv om det aldri kommer til å bli brukt igjen, er det kjent som minnelekkasje. Lekkasjer føre til søknaden din til å bruke stadig økende mengder minne, noe som igjen kan føre til dårlig systemytelse eller (i iOS) søknaden din blir avsluttet.

    minnehåndtering Regler Anmeldelser

    Vi eier gjenstandene vi skaper, og vi må deretter slippe dem når de ikke lenger er nødvendig.

    Bruk Beholde å få eierskap til et objekt som du gjorde ikke opprette. Du har å løsne disse objektene også når de ikke trengs.

  • Ikke slipp objekter som du ikke eier.

    Håndtering Minne i ARC

    Du trenger ikke å bruke utgivelsen og beholde i ARC. I så fall vil alle utsikten kontrollerens gjenstander frigis når visningen kontrolleren er fjernet. Tilsvarende vil en eventuell objektets underobjekter bli løslatt når de slippes. Merk at hvis andre klasser har en sterk referanse til et objekt av en klasse, så hele klassen vil ikke bli frigitt. Så, er det anbefalt å bruke svake egenskaper for delegatene.

    Memory Management Tools

    Vi kan analysere bruken av minnet ved hjelp av Xcode verktøy instrumenter. Det inkluderer verktøy som Activity Monitor, Avsetninger, lekkasjer, zombier, og så videre.

    Fremgangsmåte for å analysere minnetildelinger

    Trinn 1.
    Åpne et eksisterende program.

    Trinn 2.
    Velg Produkt og deretter profil som vist nedenfor.

    Trinn 3.
    Velg Bevilgninger i neste skjermbilde vist nedenfor og velg profil.

    Trinn 4.
    Vi vil se tildeling av minne for ulike objekter som vist nedenfor.

    Trinn 5.
    Du kan bytte mellom visning kontrollere og sjekke om minnet frigjøres ordentlig.

    Trinn 6.
    Tilsvar, i stedet for Avsetninger, vi kan bruke Activity Monitor for å se den totale minnebruken for søknaden.

    Trinn 7.
    Disse verktøyene hjelper oss tilgang til vår minneforbruket og finne de stedene hvor mulige lekkasjer har skjedd. Anmeldelser