Article View: pl.comp.lang.pascal
Article #93049Re: DynamicArray kontra StaticArray
From: Łukasz 'Maly' Ostrowski
Date: Mon, 05 Jul 2010 11:21
Date: Mon, 05 Jul 2010 11:21
49 lines
2827 bytes
2827 bytes
On Mon, 05 Jul 2010 12:38:32 +0200, webmajsterek@poczta.onet.pl wrote: >> >> Albo masz przedwojenny komputer, albo naprawdę nie wiesz >> jak się kompiluje z optymalizacjami: >> > > Komputer wspólczesny 3 GHz . > Jak optymalizacja to coś więcej niż ustawienie w opcjiach kompilatora > odpowiedniego pola lub wywlołanie fpc z opcja -O3 to możesz mnie nauczyć tej > sztuki . Nie, w uproszczeniu nie ;-). Mamy za mało opcji optymalizacji w fpc ;-). > Chyba rozgryzłęm problem -- winy jest FPC -- a właściwie jego wersje . > Przetestowałęm szybkośc programu dla FPC 2.4.1 , FPC 2.5.1 z czerwca (tej > używałęm ) i FPC 2.5.1 z lipca . Czyli pewnie masz jakąś wersję rozwojową, i o problemy sam się prosisz... > fpc 2.4.1 najlepiej optymalizuje --dla statycznych tablic tak samo jak delphi a > dla dynamicznych jest tylko 2 razy gorszy od delphi -- późniejsze wersje są już > dla dynamicznych i statycznych równo 3 razy wolniejsze . > Pozniejsze wersje niż 2.4.1 nie potrfią zoptymalizować kodu . ... co by było wytłumaczeniem, zgłoś developerom, niech się wytłumaczą co zepsuli, bądź co Ty zepsułeś. >> A wynik dla dynamic arraya i pointera na arraya jest taki sam, >> jednocześnie gorszy, ponieważ masz jeden więcej poziom pointer >> indirection. Bo generalnie dynamiczny array to po prostu >> pointer na tablicę. > > pytałęm się o te tablice dlatego ze FPC dawał ( daje ) różne wyniki dla > tablicy różnie zdefiniowanych a spełniające te same zadania ( i teoretycznie > powinny być równie szybkie ) np: > type TArray=Array[0..0] of Longint; > tab1:array of longint; > tab2:^TArray; > i dostęp do tab2 był znacznie szybszy . Nie powinno tak być, tab1 i tab2 powinny być tak samo szybkie z minimalnym marginesem różnicy potencjalnym. Chyba że range check był włączony. -- Pozdrawiam, Łukasz 'Maly' Ostrowski. http://l3v.pl/
Technical Details
Message-ID:
<1uwb263khb8p9.s2oly9nb2i1k.dlg@40tude.net>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!news.dialog.net.pl!not-for-mailReferences:
<1lb4zd4h3ch2p$.yy4qlystx25o$.dlg@40tude.net> <47f6.00000185.4c31b628@newsgate.onet.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!news.dialog.net.pl!not-for-mail From: Łukasz 'Maly' Ostrowski <maly@USUNnemo.pl> Newsgroups: pl.comp.lang.pascal Subject: Re: DynamicArray kontra StaticArray Date: Mon, 5 Jul 2010 13:21:28 +0200 Organization: Acme Lines: 49 Message-ID: <1uwb263khb8p9.s2oly9nb2i1k.dlg@40tude.net> References: <1lb4zd4h3ch2p$.yy4qlystx25o$.dlg@40tude.net> <47f6.00000185.4c31b628@newsgate.onet.pl> NNTP-Posting-Host: static-78-9-71-129.ssp.dialog.net.pl Mime-Version: 1.0 X-Trace: news.dialog.net.pl 1278328888 22438 78.9.71.129 (5 Jul 2010 11:21:28 GMT) X-Complaints-To: abuse@dialog.net.pl NNTP-Posting-Date: Mon, 5 Jul 2010 11:21:28 +0000 (UTC) User-Agent: 40tude_Dialog/2.0.15.1 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit