-
Data: 2011-02-02 22:38:54
Temat: Re: Porównanie szybkości mnożenia macierzy w CPP i PASCAL
Od: Fil <f...@p...onet.pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]W dniu 2011-02-02 23:09, Wojciech Muła pisze:
> On Wed, 02 Feb 2011 20:55:00 +0100 Fil<f...@p...onet.pl> wrote:
>
>> Jeszcze raz - ostatni test i podsumowanie:
>> PASCAL wariant 1 kompilator DELPHI: 8,2s
>> PASCAL wariant 2 kompilator DELPHI: 5,2s
>> CPP wariant 1 kompilator BUILDER: 4,5s
>> CPP wariant 2 kompilator BUILDER: 4,0s
>> CPP wariant 1 kompilator VISUAL: 1,4s
>> CPP wariant 2 kompilator VISUAL: 1,2s
>>
>> I tyle w temacie :)
>
> Pokaż zdisaemblowane procedury, bo teraz jest tylko zgadywanie,
> co robi kompilator.
>
> w.
>
Służę uprzejmie (dwa warianty wystarczą, aby porównać BCB i VISUALA):
CPP wariant 2 kompilator BUILDER (4,0s):
00402218 55 push ebp
00402219 8BEC mov ebp,esp
0040221B 83C4F0 add esp,-$10
0040221E 53 push ebx
0040221F 56 push esi
00402220 57 push edi
00402221 EB67 jmp $0040228a
00402223 8B4514 mov eax,[ebp+$14]
00402226 8945F0 mov [ebp-$10],eax
00402229 83451404 add dword ptr [ebp+$14],$04
0040222D 8B4D18 mov ecx,[ebp+$18]
00402230 8B551C mov edx,[ebp+$1c]
00402233 8B1A mov ebx,[edx]
00402235 83451C04 add dword ptr [ebp+$1c],$04
00402239 8B4510 mov eax,[ebp+$10]
0040223C 8945FC mov [ebp-$04],eax
0040223F EB3E jmp $0040227f
00402241 8B55F0 mov edx,[ebp-$10]
00402244 8B02 mov eax,[edx]
00402246 8B11 mov edx,[ecx]
00402248 83C104 add ecx,$04
0040224B 33F6 xor esi,esi
0040224D 8975F4 mov [ebp-$0c],esi
00402250 8975F8 mov [ebp-$08],esi
00402253 8B750C mov esi,[ebp+$0c]
00402256 EB10 jmp $00402268
00402258 DD00 fld qword ptr [eax]
0040225A DC0A fmul qword ptr [edx]
0040225C 83C208 add edx,$08
0040225F 83C008 add eax,$08
00402262 DC45F4 fadd qword ptr [ebp-$0c]
00402265 DD5DF4 fstp qword ptr [ebp-$0c]
00402268 8BFE mov edi,esi
0040226A 83C6FF add esi,-$01
0040226D 85FF test edi,edi
0040226F 75E7 jnz $00402258
00402271 8B45F4 mov eax,[ebp-$0c]
00402274 8903 mov [ebx],eax
00402276 8B45F8 mov eax,[ebp-$08]
00402279 894304 mov [ebx+$04],eax
0040227C 83C308 add ebx,$08
0040227F 8B55FC mov edx,[ebp-$04]
00402282 8345FCFF add dword ptr [ebp-$04],-$01
00402286 85D2 test edx,edx
00402288 75B7 jnz $00402241
0040228A 8B4D08 mov ecx,[ebp+$08]
0040228D 834508FF add dword ptr [ebp+$08],-$01
00402291 85C9 test ecx,ecx
00402293 758E jnz $00402223
00402295 5F pop edi
00402296 5E pop esi
00402297 5B pop ebx
00402298 8BE5 mov esp,ebp
0040229A 5D pop ebp
0040229B C3 ret
CPP wariant 2 kompilator VISUAL (1,2s):
01111050 push ebp
01111051 mov ebp,esp
01111053 sub esp,0Ch
01111056 mov eax,dword ptr [ebp+0Ch]
01111059 fldz
0111105B push ebx
0111105C push esi
0111105D sub ecx,eax
0111105F push edi
01111060 mov dword ptr [N],7D0h
01111067 mov dword ptr [ebp-0Ch],ecx
0111106A jmp MulTab2+22h (1111072h)
0111106C mov eax,dword ptr [C]
0111106F mov ecx,dword ptr [ebp-0Ch]
01111072 mov edx,dword ptr [eax]
01111074 dec dword ptr [N]
01111077 mov esi,dword ptr [B]
0111107A mov edi,dword ptr [ecx+eax]
0111107D add ecx,eax
0111107F add eax,4
01111082 mov dword ptr [Cij],edx
01111085 mov dword ptr [C],eax
01111088 mov ebx,7D0h
0111108D mov edx,dword ptr [esi]
0111108F fld st(0)
01111091 dec ebx
01111092 add esi,4
01111095 mov eax,edi
01111097 mov ecx,12Ch
0111109C sub edx,edi
0111109E fld qword ptr [edx+eax]
011110A1 add eax,8
011110A4 dec ecx
011110A5 fmul qword ptr [eax-8]
011110A8 faddp st(1),st
011110AA jne MulTab2+4Eh (111109Eh)
011110AC mov eax,dword ptr [Cij]
011110AF fstp qword ptr [eax]
011110B1 add eax,8
011110B4 mov dword ptr [Cij],eax
011110B7 test ebx,ebx
011110B9 jne MulTab2+3Dh (111108Dh)
011110BB cmp dword ptr [N],ebx
011110BE jne MulTab2+1Ch (111106Ch)
011110C0 pop edi
011110C1 fstp st(0)
011110C3 pop esi
011110C4 pop ebx
011110C5 mov esp,ebp
011110C7 pop ebp
011110C8 ret
Miłej analizy :)
Fil.
Następne wpisy z tego wątku
- 02.02.11 22:56 Fil
- 02.02.11 23:00 Wojciech Muła
- 03.02.11 02:37 Mariusz Marszałkowski
- 03.02.11 08:13 Tomasz Kaczanowski
- 03.02.11 08:54 wloochacz
- 03.02.11 08:55 wloochacz
- 03.02.11 10:23 Mariusz Marszałkowski
- 03.02.11 10:48 bartekltg
- 03.02.11 10:56 wloochacz
- 03.02.11 11:17 p...@i...pl
- 03.02.11 11:29 Grzegorz Krukowski
- 03.02.11 11:36 wloochacz
- 03.02.11 11:52 Grzegorz Krukowski
- 03.02.11 13:01 bartekltg
- 03.02.11 14:13 A.L.
Najnowsze wątki z tej grupy
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
- CfC 28th Ada-Europe Int. Conf. Reliable Software Technologies
- Młodzi programiści i tajna policja
Najnowsze wątki
- 2024-11-29 Warszawa => Head of International Freight Forwarding Department <=
- 2024-11-29 Białystok => Inżynier Serwisu Sprzętu Medycznego <=
- 2024-11-29 Pómpy ciepła darmo rozdajoo
- 2024-11-29 Białystok => Application Security Engineer <=
- 2024-11-29 Białystok => Programista Full Stack (.Net Core) <=
- 2024-11-29 Gdańsk => Software .Net Developer <=
- 2024-11-29 Wrocław => Key Account Manager <=
- 2024-11-29 Gdańsk => Specjalista ds. Sprzedaży <=
- 2024-11-29 Chrzanów => Specjalista ds. public relations <=
- 2024-11-27 Re: UseGalileo -- PRODUKTY I APLIKACJE UŻYWAJĄ JUŻ DZIŚ SYSTEMU GALILEO
- 2024-11-27 Re: UseGalileo -- PRODUKTY I APLIKACJE UŻYWAJĄ JUŻ DZIŚ SYSTEMU GALILEO
- 2024-11-28 droga laweta
- 2024-11-28 Co tam się odpierdala w tej Warszawie?
- 2024-11-28 skąd się biorą tacy debile?
- 2024-11-28 JDG i utylizacja sprzetu