eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingautorelease poolsRe: autorelease pools
  • Data: 2011-09-13 14:18:24
    Temat: Re: autorelease pools
    Od: Paweł Kierski <n...@p...net> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    W dniu 2011-09-13 13:27, kenobi pisze:
    > W obj-c jest cos co nazywa sie 'autorelease pools' i o ile rozumiem
    > jest to posredni stopien miedzy recznym zarzadzaniem pamiecia
    > (przez free/delete/release itp) a grabage collectorem.
    >
    > NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
    > //tu wywolaj funkcje
    > [pool release];
    >
    > Dziala to tak ze wybrane (tj te obslugujace autorelelease) obiekty tworzone
    > po zalaczeniu poola sa rejestrowane i nie trzeba ich zwalniac - zostana usuniete
    > przy niszczeniu (albo drainowaniu) poola.
    >
    > Sam nie za bardzo znam sie ani na kwestiach dotyczacych gc ani tez i recznej
    > gospodarki pamiecia ale pamietam ze toczyly sie tu onegdaj dyskusje nt jednego i
    > drugiego a chyba nie byl omawiany wlasnie ten posredni przypadek ([sam jestem
    > raczej zwolennikiem w wiekszosci statycznego podejscia - czyli mozna by to nazwac
    > jeszcze 'czwarta droga'); jakby co to chetnie uslysze zdania dotyczace tego
    'posredniego'
    > miedzy gc a reczna gosp sposobu.

    Świetnie się stosuje np. w przypadku, gdy w ramach jakiegoś
    separowanego przetwarzania musisz tworzyć dużo małych obiektów
    tymczasowych, a co najwyżej niektóre z nich będą potrzebne jako wyniki.
    (Ewentualny koszt kopiowania z puli do "innej" pamięci jest mały)

    Wtedy zysk jest duży:
    - alokacja z puli może być bardzo szybka (szczególnie, gdy dostęp do
    niej jest z jednego wątku, a obiekty są zbliżonych rozmiarów)
    - dealokacja puli jest jeszcze szybsza 8-)
    - na pewno wszystkie obiekty z puli zostaną usunięte - nie można mieć
    wycieków pamięci, o ile tylko zwolni się pulę (i nie ma referencji
    z obieków z puli, ale tym powinny zająć się ewentualne destruktory).
    Do tego zarządzanie jest bardzo proste - tworzę, tworzę,... potem
    niszczę pulę i już.

    To jest oczywiście bardzo szczególny przypadek, ale powyższe zalety
    można wykorzystać przy innych okazjach.

    --
    Paweł Kierski
    n...@p...net

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: