🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.pascal
Article #93049

Re: DynamicArray kontra StaticArray

#93049
From: Łukasz 'Maly' Ostrowski
Date: Mon, 05 Jul 2010 11:21
49 lines
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-mail
References: <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