🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.c
Article #272340

Re: [SGCL] Odśmiecania współbieżnego ciąg dalszy

#272340
From: Sebastian Nibisz
Date: Tue, 26 Feb 2008 10:48
47 lines
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-mail
References: <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