-
Data: 2011-02-02 16:53:49
Temat: Re: Porównanie szybkości mnożenia macierzy w CPP i PASCAL
Od: Tomasz Kaczanowski <kaczus@dowyciecia_poczta.onet.pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]Fil pisze:
> Witam!
>
> Są dwie procedury:
> CPP:
> void MulTab(int N, int Q, int M, double** A, double** B, double** C)
> {
> for (int i = 0; i < N; ++i)
> for (int j = 0; j < M; ++j) {
> C[i][j] = 0;
> for (int k = 0; k < Q; ++k) C[i][j] += A[i][k] * B[k][j];
> }
> }
>
> oraz PASCAL:
> TMatrix = array of array of double;
>
> procedure MulMatrix(N, Q, M:integer; T1, T2:TMatrix; var T3:TMatrix);
> var
> i, j, k:integer;
> begin
> for i := 0 to N-1 do
> for j := 0 to M-1 do begin
> T3[i, j] := 0;
> for k := 0 to Q-1 do T3[i, j] := T3[i, j] + T1[i, k] * T2[k, j];
> end;
> end;
>
> Kompiluję obie w BCB Builder 2010 i Delphi 2010 (odpowiednio) w trybie
> "release" z włączonymi optymalizacjami i odpalam.
> Dla rozmiarów N = 2000 i M = 300 mam takie czasy:
> CPP time = 4,5s
> PAS time = 8,2s
>
> Czasy mierzone z wykorzystaniem QueryPerformanceCounter... i wiem, że
> procedurke w PASCALu można lepiej napisać, ale nie jestem fanem PASCALa
> i nie sądzę, aby ten niezbyt ładnie napisany kod usprawiedliwiał TAKĄ
> różnicę w czasach. Chyba, że problem tkwi w tablicach dynamicznych PASCALA?
>
> Czy to oznacza, że Delphi nie nadaje się do obliczeń?
Zapewne się nadaje, ogólnie jednak kompilatory Borlanda słabo
optymalizują - niezależnie od języka. Więc zależy od tego co chcemy
obliczać.
--
Kaczus
http://kaczus.republika.pl
Następne wpisy z tego wątku
- 02.02.11 16:58 Fil
- 02.02.11 17:13 Fil
- 02.02.11 17:18 Norbert
- 02.02.11 18:00 Grzegorz Krukowski
- 02.02.11 18:14 Fil
- 02.02.11 18:14 Fil
- 02.02.11 18:20 Fil
- 02.02.11 18:40 Grzegorz Krukowski
- 02.02.11 19:05 Fil
- 02.02.11 19:15 Grzegorz Krukowski
- 02.02.11 19:30 Fil
- 02.02.11 19:51 Grzegorz Krukowski
- 02.02.11 19:55 Fil
- 02.02.11 19:56 Fil
- 02.02.11 20:03 Grzegorz Krukowski
Najnowsze wątki z tej grupy
- Arch. Prog. Nieuprzywilejowanych w pełnej wer. na nowej s. WWW energokod.pl
- 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
Najnowsze wątki
- 2025-01-06 Katowice => Regionalny Kierownik Sprzedaży (OZE) <=
- 2025-01-06 Warszawa => Spedytor Międzynarodowy <=
- 2025-01-06 Lublin => Programista Delphi <=
- 2025-01-06 Gdańsk => Specjalista ds. Sprzedaży <=
- 2025-01-06 śnieg
- 2025-01-05 Żarówka do lampy z czujnikiem ruchu
- 2025-01-05 Rozkręcają się
- 2025-01-04 pozew za naprawę sprzętu na youtube
- 2025-01-04 gasik
- 2025-01-04 13. Raport Totaliztyczny: Powszechna Deklaracja Praw Człowieka Nie Chroni Przed Wyzyskiem Ani Przed Eksploatacją
- 2025-01-04 Zbieranie danych przez www
- 2025-01-04 reverse engineering i dodawanie elementów do istniejących zamkniętych produktów- legalne?
- 2025-01-04 w Nowym Roku 2025r
- 2025-01-04 Warszawa => Specjalista ds. IT - II Linia Wsparcia <=
- 2025-01-04 Warszawa => Java Developer <=