🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

Re: Ciemna strona C++

#267679
From: Łukasz Krotowski
Date: Sat, 10 Nov 2007 20:13
51 lines
3508 bytes
Dnia 2007-11-10, Piotr Wyderski napisał:
> Łukasz Krotowski wrote:
>
>> // gdzieś, lokalnie w kodzie
>> memory_pool local_pool(LOCAL_POOL_SIZE);
>> do_not_deallocate_allocator::set_pool(local_pool);
>
> A skąd sobie weźmiesz adres puli w miejscu użycia?
> Będzie globalna, czy będziesz przepychał to jako parametr?
> Bo pierwsze rozwiązanie padnie w kodzie wielowątkowym,
> a drugie będzie "wydajne inaczej".

Globalna. W przypadku wątków w TLS. Dla uproszczenia możemy założyć, że
alokator wielowątkowy można zastąpić wieloma instancjami alokatora
jednowątkowego w TLS.

>> W takim przypadku alokacja będzie porównywalna ze stosową
>
> OK.
>
>> a dealokacja szybsza.
>
> Nie widzę żadnego powodu, by była szybsza. Dealokacja stosowa
> składa się z _jednej_ instrukcji: addl, $size, %esp. Kompilator może
> zgrupować takie zwolnienia w jedno add, sumując ich rozmiary
> i z prawdopodobieństwem graniczącym z pewnością to zrobi, bo
> taka optymalizacja jest trywialna. Jak się mocno postarasz
> i będziesz miał szczęście, to dogonisz wydajność dealokacji
> stosowej, ale "you've got to ask yourself a question: Do I feel
> lucky? Well, do ya punk?" ;-)))

Hmm, jak pewnie się domyśliłeś dealokacja w do_not_deallocate_allocator
składa się z zera instrukcji. A powyższej optymalizacji opowiada jedno
wywołanie local_pool.release(). Czyli, jeśli kompilator nie
zoptymalizuje dobrze albo przeciągnę sobie życie local_pool przez więcej
niż jedno wywołanie funkcji to będę szybszy. (*)

>> Oczywiście długość życia obiektów ma znaczenie
>
> Jak najbardziej, ale akurat nie w tym rozwiązaniu,
> które z Sewerynem próbujecie mi sprzedać. :-)

Alokatory, alokatory! Trzy pięćdziesiąt za mendel!
BP, NMSP.


(*) Przekomarzanie się o kilka instrukcji. Ech, słodkie, sobotnie
dyskusje usnetowe. ;)

-- 
Łukasz Krotowski | lukasz.krotowski_AT_gmail.com
Technical Details
Message-ID: <fh53d6$edf$1@inews.gazeta.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail
References: <fghgeo$spf$1@nemesis.news.tpi.pl> <fghsb4$kpq$1@news.dialog.net.pl> <fgo4c7$mtu$1@news.vectranet.pl> <20071106073039.433f4934@Vorago> <fgqn9m$74j$2@news.vectranet.pl> <618565031.20071107113041@pkierski.net> <fgt6sh$jov$1@news.vectranet.pl> <fgtb6j$nur$1@news.vectranet.pl> <fgv6ba$k14$1@bozon2.softax.pl> <fgvkne$u3b$1@news.vectranet.pl> <fh1tjd$dtt$1@bozon2.softax.pl> <fh206f$2d6$1@news.supermedia.pl> <fh2ma2$rd0$1@news.vectranet.pl> <fh2po8$d0c$1@news.dialog.net.pl> <fh2vap$ggn$1@news.supermedia.pl> <fh4c1t$795$1@news.dialog.net.pl> <fh4cn0$etq$1@inews.gazeta.pl> <fh4ed5$8ih$1@news.dialog.net.pl> <fh4haa$2hm$1@inews.gazeta.pl> <fh4htk$agv$1@news.dialog.net.pl> <fh4n53$q3k$1@inews.gazeta.pl> <fh4qk4$fpq$1@news.dialog.net.pl> <fh4snb$hvb$1@inews.gazeta.pl> <fh51uj$k3t$1@news.dialog.net.pl>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail
From: Łukasz Krotowski <notreal@notreal.pl>
Newsgroups: pl.comp.lang.c
Subject: Re: Ciemna strona C++
Date: Sat, 10 Nov 2007 20:13:26 +0000 (UTC)
Organization: "Portal Gazeta.pl -> http://www.gazeta.pl"
Lines: 51
Message-ID: <fh53d6$edf$1@inews.gazeta.pl>
References: <fghgeo$spf$1@nemesis.news.tpi.pl> <fghsb4$kpq$1@news.dialog.net.pl> <fgo4c7$mtu$1@news.vectranet.pl> <20071106073039.433f4934@Vorago> <fgqn9m$74j$2@news.vectranet.pl> <618565031.20071107113041@pkierski.net> <fgt6sh$jov$1@news.vectranet.pl> <fgtb6j$nur$1@news.vectranet.pl> <fgv6ba$k14$1@bozon2.softax.pl> <fgvkne$u3b$1@news.vectranet.pl> <fh1tjd$dtt$1@bozon2.softax.pl> <fh206f$2d6$1@news.supermedia.pl> <fh2ma2$rd0$1@news.vectranet.pl> <fh2po8$d0c$1@news.dialog.net.pl> <fh2vap$ggn$1@news.supermedia.pl> <fh4c1t$795$1@news.dialog.net.pl> <fh4cn0$etq$1@inews.gazeta.pl> <fh4ed5$8ih$1@news.dialog.net.pl> <fh4haa$2hm$1@inews.gazeta.pl> <fh4htk$agv$1@news.dialog.net.pl> <fh4n53$q3k$1@inews.gazeta.pl> <fh4qk4$fpq$1@news.dialog.net.pl> <fh4snb$hvb$1@inews.gazeta.pl> <fh51uj$k3t$1@news.dialog.net.pl>
NNTP-Posting-Host: static-81-219-20-61.devs.futuro.pl
Mime-Version: 1.0
X-Trace: inews.gazeta.pl 1194725606 14767 81.219.20.61 (10 Nov 2007 20:13:26 GMT)
X-Complaints-To: usenet@agora.pl
NNTP-Posting-Date: Sat, 10 Nov 2007 20:13:26 +0000 (UTC)
X-User: bies_pospolity
User-Agent: slrn/0.9.8.1pl1 (Linux)
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit