Article View: pl.comp.lang.c
Article #272340Re: [SGCL] Odśmiecania współbieżnego ciąg dalszy
From: Sebastian Nibisz
Date: Tue, 26 Feb 2008 10:48
Date: Tue, 26 Feb 2008 10:48
47 lines
2609 bytes
2609 bytes
> Jeszcze jedno pytanie z gatunku naiwnych:
>
> Czym sie rozni/codaje wiecej ta biblioteka
> w stosunku od boostowego/MSowego
> shared_pointer-a ?
Shared poiner jest niestety wielce niedoskonałym sposobem odśmiecania, gdyż
działa w oparciu o mechanizm zliczania referencji i ma cztery podstawowe
wady:
1. Nie zwalnia struktur cyklicznych.
2. Operacje na wskaźnikach są kosztowne (wymaga operacji atomowych).
3. Zwalnianie większych struktur, może doprowadzić do przepełnienia ramki
stosu.
struct Node
{
shared_ptr<Node> Next;
};
{
shared_ptr<Node> root(new Node);
shared_ptr<Node> node(root);
for (int x = 0; x < 1000000; ++x)
{
node = node->Next = shared_ptr<Node>(new Node);
}
} // <- KATASTROFA !!!
4. Zwalnianie większych struktur, może na dłuższy okres wstrzymać działanie
aplikacji (wymaga operacji atomowych).
Oczywiście niezaprzeczalna zaletą shared poiner, jest możliwość
deterministycznego zwalniania zasobów, co w typowym systemie GC jest
niemożliwe do uzyskania.
SGCL jest w pełni wspóbieżnym systemem GC (osobny wątek aplikacji), opartym
na algorytmie mark & sweep. Wątek GC działa niezależnie od innych wątków
aplikacji i nie musi być z nimi w żaden sposób synchronizowany.
Prawde powiedziawszy, na chwilę obecną, nie spotkałem jeszcze takiej
implementacji systemu GC w jakimkolwiek języku czy środowisku.
Pozdrawiam.
- Bastek -
Technical Details
Message-ID:
<fq0qpa$ekv$1@inews.gazeta.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mailReferences:
<fppvdq$68v$1@inews.gazeta.pl> <fq0od3$5bm$1@inews.gazeta.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail From: "Sebastian Nibisz" <EBA_K@poczta.onet.pl> Newsgroups: pl.comp.lang.c Subject: Re: [SGCL] Odśmiecania współbieżnego ciąg dalszy Date: Tue, 26 Feb 2008 11:48:07 +0100 Organization: "Portal Gazeta.pl -> http://www.gazeta.pl" Lines: 48 Message-ID: <fq0qpa$ekv$1@inews.gazeta.pl> References: <fppvdq$68v$1@inews.gazeta.pl> <fq0od3$5bm$1@inews.gazeta.pl> NNTP-Posting-Host: s178pc190.mmj.pl Mime-Version: 1.0 X-Trace: inews.gazeta.pl 1204022890 15007 85.219.178.190 (26 Feb 2008 10:48:10 GMT) X-Complaints-To: usenet@agora.pl NNTP-Posting-Date: Tue, 26 Feb 2008 10:48:10 +0000 (UTC) In-Reply-To: <fq0od3$5bm$1@inews.gazeta.pl> X-Antivirus-Status: Clean X-MimeOLE: Produced By Microsoft MimeOLE V6.0.6000.16545 X-Priority: 3 X-Newsreader: Microsoft Windows Mail 6.0.6000.16480 X-User: eba_k X-Antivirus: avast! (VPS 080225-0, 2008-02-25), Outbound message X-MSMail-Priority: Normal Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit