🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

Re: DynamicArray kontra StaticArray

#93046
From: Łukasz 'Maly' Ostrowski
Date: Fri, 02 Jul 2010 07:31
87 lines
3282 bytes
On Fri, 2 Jul 2010 07:01:26 +0000 (UTC), Mirek wrote:
> On czw, 01 lip 2010 23:40:50 in article news:<i0j212$c42$1@news.onet.pl>
> Wiktor S. wrote:
>> 
>> 
>> i dostaję
>> 
>> Tablica OpenArray 00.00.46
>> Tablica DefArray 00.00.39

E:\WorkShop\fpc>c:\dev\fpc\bin\i386-win32\fpc -O3 test
Free Pascal Compiler version 2.4.0 [2009/12/18] for i386
Copyright (c) 1993-2009 by Florian Klaempfl
Target OS: Win32 for i386
Compiling test.pas
Linking test.exe
27 lines compiled, 0.1 sec , 63296 bytes code, 11064 bytes data

E:\WorkShop\fpc>test
 Tablica OpenArray 00:00:32
 Tablica DefArray 00:00:32

E:\WorkShop\fpc>test
 Tablica OpenArray 00:00:32
 Tablica DefArray 00:00:32

Tak jakby, pomijalna różnica.

> I dostałeś wynik odwrotny niż w pierwszym poście ;)
> 
> U mnie dla pgm1 wyniki były równe, a dla pgm2 (niestety mam tylko fpc 2.2.0)
> jest:
> 
>  Tablica OpenArray 00:01:15
>  Tablica DefArray 00:00:34
> 
> Skompiluj z opcją -al i wyszukaj w pliku pgm.s wnętrza pętli, u mnie
> wyglądają tak:
> 
> //-------------
>         movl    U_P$PROGRAM_OPENARRAY,%eax
>         movl    28(%eax),%ecx
>         movl    16(%eax),%eax
>         addl    %ecx,%eax
>         movl    U_P$PROGRAM_OPENARRAY,%ecx
>         movl    %eax,28(%ecx)
> 
> //--------------
>         movl    U_P$PROGRAM_DEFARRAY+28,%edx
>         movl    U_P$PROGRAM_DEFARRAY+16,%eax
>         addl    %edx,%eax
>         movl    %eax,U_P$PROGRAM_DEFARRAY+28
> 
> Czyli OPENARRAY ma więcej o dwa ładowania rejestru i trzy dodawania (przy
> wyznaczaniu adresu).

Czego się spodziewamy ze względu na internalsy dynamicznego arraya.
Co do wygenerowanego asma mamy zgodę, z różnicą tyczącą sie
allokacji rejestrów, która to pewnie powoduje u mnie różnicę
w postaci braku różnicy ;-) :

.Lj31:
	incl	%edi
	movl	U_P$PROGRAM_OPENARRAY,%eax
	movl	U_P$PROGRAM_OPENARRAY,%ebx
	movl	28(%eax),%ecx
	movl	16(%ebx),%eax
	addl	%eax,%ecx
	movl	U_P$PROGRAM_OPENARRAY,%eax
	movl	%ecx,28(%eax)
	cmpl	$1000000000,%edi
	jl	.Lj31

.Lj65:
	incl	%edi
	movl	U_P$PROGRAM_DEFARRAY+28,%edx
	movl	U_P$PROGRAM_DEFARRAY+16,%ecx
	addl	%ecx,%edx
	movl	%edx,U_P$PROGRAM_DEFARRAY+28
	cmpl	$1000000000,%edi
	jl	.Lj65

Co nadal nie robi takiej różnicy żeby zwracać na to uwagę ;-).

-- 
Pozdrawiam,
Łukasz 'Maly' Ostrowski.      http://l3v.pl/
Technical Details
Message-ID: <xqxlz4yswhvy.1466ro3qpaxiy.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: <60b5.000013db.4c2c66b2@newsgate.onet.pl> <i0j1hg$ar7$1@news.onet.pl> <i0j212$c42$1@news.onet.pl> <i0k2s6$shj$1@inews.gazeta.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: Fri, 2 Jul 2010 09:31:56 +0200
Organization: Acme
Lines: 87
Message-ID: <xqxlz4yswhvy.1466ro3qpaxiy.dlg@40tude.net>
References: <60b5.000013db.4c2c66b2@newsgate.onet.pl> <i0j1hg$ar7$1@news.onet.pl> <i0j212$c42$1@news.onet.pl> <i0k2s6$shj$1@inews.gazeta.pl>
NNTP-Posting-Host: static-78-9-71-129.ssp.dialog.net.pl
Mime-Version: 1.0
X-Trace: news.dialog.net.pl 1278055933 8118 78.9.71.129 (2 Jul 2010 07:32:13 GMT)
X-Complaints-To: abuse@dialog.net.pl
NNTP-Posting-Date: Fri, 2 Jul 2010 07:32:13 +0000 (UTC)
User-Agent: 40tude_Dialog/2.0.15.1
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit