eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingautorelease poolsRe: autorelease pools
  • Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!.POSTED!not-for
    -mail
    From: Paweł Kierski <n...@p...net>
    Newsgroups: pl.comp.programming
    Subject: Re: autorelease pools
    Date: Tue, 13 Sep 2011 16:18:24 +0200
    Organization: http://onet.pl
    Lines: 41
    Message-ID: <j4nonh$tha$1@news.onet.pl>
    References: <5...@n...onet.pl>
    NNTP-Posting-Host: 195.182.34.201
    Mime-Version: 1.0
    Content-Type: text/plain; charset=ISO-8859-2; format=flowed
    Content-Transfer-Encoding: 8bit
    X-Trace: news.onet.pl 1315923505 30250 195.182.34.201 (13 Sep 2011 14:18:25 GMT)
    X-Complaints-To: n...@o...pl
    NNTP-Posting-Date: Tue, 13 Sep 2011 14:18:25 +0000 (UTC)
    User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; pl; rv:1.9.2.22) Gecko/20110902
    Lightning/1.0b2 Thunderbird/3.1.14
    In-Reply-To: <5...@n...onet.pl>
    Xref: news-archive.icm.edu.pl pl.comp.programming:192375
    [ ukryj 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: