🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

Re: Ciemna strona C++

#267681
From: Łukasz Krotowski
Date: Sat, 10 Nov 2007 22:33
55 lines
4087 bytes
Dnia 2007-11-10, Piotr Wyderski napisał:
> Łukasz Krotowski wrote:
>> 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.
>
> Dobrze kombinujesz, tylko jest jeden problem: dostęp do zmienych
> w TLS jest względnie powolny, jeśli opierasz się na API systemowym.
> Wymyślenie naprawdę szybkich TLSów, działających bez wsparcia
> API na głównej ścieżce zajęło mi sporo czasu i wynik jest dość
> nietrywialny. Działa od kilku lat. Ale istotnie, bardzo szybkie TLSy
> to kluczowy element współczesnego alokatora.

Pewnie masz rację. Ale jeszcze nie zajmowałem się TLS na takim poziomie.
Zazwyczaj __thread w gcc mi wystarcza (plus to co jest w WinAPI,
przynajmniej do czasu aż wyjdzie stabilne gcc4 dla win32).

Mówiąc zupełnie szczerze, ostatnimi czasy wąskim gardłem są dla mnie
dyski i baza.

>> Hmm, jak pewnie się domyśliłeś dealokacja w do_not_deallocate_allocator
>> składa się z zera instrukcji.
>
> To ja nie rozumiem, jak to ma działać. Dla każdego ciągu
> wektorów osobna pula? Bez jaj. :-)

Nie. Załóżmy, że masz jakiś kawałek programu który działa na pewnej,
znanej ilości pamięci (stałej, bądź jako funkcja wejścia). Wtedy możesz,
z nonszalanckim ,,a co mi tam'', wszystkie kontenery z tego kawałka
programu przestawić na alokator który tylko alokuje. A po zakończeniu,
jednym pool.release() zwolnić całą pamięć.

To nie dotyczy tylko wektorów. A zaleta jest taka, że nie musisz dbać o
kolejność poszczególnych alokacji i dealokacji.

>> albo przeciągnę sobie życie local_pool przez więcej
>> niż jedno wywołanie funkcji to będę szybszy. (*)
>
> Nie nadążam. Masz darmowe budowanie rekordów aktywacji?
> Ech, kombinujecie, Panocku, jak koń pod górę.

Ja też nie nadążam. Skąd Ci się tutaj wzięły rekordy aktywacji?

>> (*) Przekomarzanie się o kilka instrukcji.
>
> No nie takie kilka, już się TLSy zaczęły pojawiac na horyzoncie. :-)
> A poza tym akurat w moim zastosowaniu te kilka instrukcji było
> istotne, formater znacznie przyspieszył po przejściu z mojego i tak
> zoptymalizowanego alokatora w std::vector na kontener "stosowy";
> o przypadku standardowego alokatora to szkoda gadać.

Formater? Wysoko-wydajny formater? Czego?

-- 
Łukasz Krotowski | lukasz.krotowski_AT_gmail.com
Technical Details
Message-ID: <fh5bjn$fk9$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> <fh53d6$edf$1@inews.gazeta.pl> <fh569d$mmn$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 22:33:27 +0000 (UTC)
Organization: "Portal Gazeta.pl -> http://www.gazeta.pl"
Lines: 55
Message-ID: <fh5bjn$fk9$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> <fh53d6$edf$1@inews.gazeta.pl> <fh569d$mmn$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 1194734007 16009 81.219.20.61 (10 Nov 2007 22:33:27 GMT)
X-Complaints-To: usenet@agora.pl
NNTP-Posting-Date: Sat, 10 Nov 2007 22:33:27 +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