eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingPorównanie szybkości mnożenia macierzy w CPP i PASCALRe: Porównanie szybkości mnożenia macierzy w CPP i PASCAL
  • 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.

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: