Article View: pl.comp.lang.c
Article #267679Re: Ciemna strona C++
From: Łukasz Krotowski
Date: Sat, 10 Nov 2007 20:13
Date: Sat, 10 Nov 2007 20:13
51 lines
3508 bytes
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-mailReferences:
<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