Sprzęt na którym testowany jest program:
AMD 64 X2 2.0 GHz, 2 GB RAM
Program korzysta z rozszerzenia klasy Thread
1. Test na małej ilości danych( rozmiar wektora(n)=99, drugi rozmiar macierzy (m) = 50, zakres wartości 1-100(liczby pseudo-losowe) i ilość wątków(k) = 3) a. Pierwsze wykonanie:
Tworze watek numer 1
Tworze watek numer 2
Tworze watek numer 3
Jestę watkię nr = 1 i liczę iloczyn
Jestę watkię nr = 2 i liczę iloczyn
Jestę watkię nr = 3 i liczę iloczyn
Koniec wątku 1
Koniec wątku 2
Koniec wątku 3
Czas trwania watkow = 35 630 520 nanosekund
Koniec wątku głównego
b. Drugie wykonanie:
Tworze watek numer 1
Tworze watek numer 2
Tworze watek numer 3
Jestę watkię nr = 1 i liczę iloczyn
Jestę watkię nr = 3 i liczę iloczyn
Jestę watkię nr = 2 i liczę iloczyn
Koniec wątku 1
Koniec wątku 2
Koniec wątku 3
Czas trwania watkow = 35 585 920 nanosekund
Koniec wątku głównego
c. Trzecie wykonanie
Tworze watek numer 1
Tworze watek numer 2
Tworze watek numer 3
Jestę watkię nr = 1 i liczę iloczyn
Jestę watkię nr = 3 i liczę iloczyn
Jestę watkię nr = 2 i liczę iloczyn
Koniec wątku 1
Koniec wątku 2
Koniec wątku 3
Czas trwania watkow = 34 740 400 nanosekund
Koniec wątku głównego
Średni czas trwania wątków: 35 318 946,(6) nanosekund czyli 35,3 milisekundy Amplituda czasów: 890 120 nanosekund czyli 0.89 milisekundy
2. Test na małej ilości danych( rozmiar wektora(n)=99, drugi rozmiar macierzy (m) = 50, zakres wartości 1-100(liczby pseudo-losowe) i ilość wątków(k) = 9) a. Pierwsze wykonanie
Tworze watek numer 1
Tworze watek numer 2
Tworze watek numer 3
Tworze watek numer 4
Tworze watek numer 5
Tworze watek numer 6
Tworze watek numer 7
Tworze watek numer 8
Tworze watek numer 9
Jestę watkię nr = 1 i liczę iloczyn
Jestę watkię nr = 2 i liczę iloczyn
Jestę watkię nr = 4 i liczę iloczyn
Jestę watkię nr = 5 i liczę iloczyn
Jestę watkię nr = 3 i liczę iloczyn
Jestę watkię nr = 6 i liczę iloczyn
Jestę watkię nr = 7 i liczę iloczyn
Jestę watkię nr = 8 i liczę iloczyn
Koniec wątku 1
Jestę watkię nr = 9 i liczę iloczyn
Koniec wątku 2
Koniec wątku 3
Koniec wątku 4
Koniec wątku 5
Koniec wątku 6
Koniec wątku 7
Koniec wątku 8
Koniec wątku 9
Czas trwania watkow = 106 611 680 nanosekund
Koniec wątku głównego
b. Drugie wykonanie
run:
Tworze watek numer 1
Tworze watek numer 2
Tworze watek numer 3
Tworze watek numer 4
Tworze watek numer 5
Tworze watek numer 6
Tworze watek numer 7
Tworze watek numer 8
Tworze watek numer 9
Jestę watkię nr = 2 i liczę iloczyn
Jestę watkię nr = 4 i liczę iloczyn
Jestę watkię nr = 6 i liczę iloczyn
Jestę watkię nr = 3 i liczę iloczyn
Jestę watkię nr = 5 i liczę iloczyn
Jestę watkię nr = 8 i liczę iloczyn
Koniec wątku 2
Jestę watkię nr = 1 i liczę iloczyn
Jestę watkię nr = 7 i liczę iloczyn
Jestę watkię nr = 9 i liczę iloczyn
Koniec wątku 1
Koniec wątku 4
Koniec wątku 3
Koniec wątku 5
Koniec wątku 6
Koniec wątku 7
Koniec wątku 8
Koniec wątku 9
Czas trwania watkow = 124 988 320 nanosekund
Koniec wątku głównego
c. Trzecie wykonanie
Tworze watek numer 1
Tworze watek numer 2
Tworze watek numer 3
Tworze watek numer 4
Tworze watek numer 5
Tworze watek numer 6
Tworze watek numer 7
Tworze watek numer 8
Tworze watek numer 9
Jestę watkię nr = 2 i liczę iloczyn
Jestę watkię nr = 4 i liczę iloczyn
Jestę watkię nr = 6 i liczę iloczyn
Jestę watkię nr = 8 i liczę iloczyn
Jestę watkię nr = 1 i liczę iloczyn
Jestę watkię nr = 3 i liczę iloczyn
Jestę watkię nr = 5 i liczę iloczyn
Jestę watkię nr = 7 i liczę iloczyn
Jestę watkię nr = 9 i liczę iloczyn
Koniec wątku 2
Koniec wątku 1
Koniec wątku 4
Koniec wątku 3
Koniec wątku 6
Koniec wątku 5
Koniec wątku 7
Koniec wątku 8
Koniec wątku 9
Czas trwania watkow = 117 320 840 nanosekund
Koniec wątku głównego
Średni czas trwania wątków: 116 306 946,(6) nanosekund czyli 116,3 milisekund Amplituda czasów: 18 376 640 nanosekund czyli 18 milisekund
3. Test na dużej ilości danych( rozmiar wektora(n)=201, drugi rozmiar macierzy (m) = 100, zakres wartości 1-1000(liczby pseudo-losowe) i ilość wątków(k) = 3) a. Pierwsze wykonanie:
Tworze watek numer 1
Tworze watek numer 2
Tworze watek numer 3
Jestę watkię nr = 2 i liczę iloczyn
Jestę watkię nr = 1 i liczę iloczyn
Jestę watkię nr = 3 i liczę iloczyn
Koniec wątku 1
Koniec wątku 2
Koniec wątku 3
Czas trwania watkow = 43 509 280 nanosekund
Koniec wątku głównego
b. Drugie wykonanie
Tworze watek numer 1
Tworze watek numer 2
Tworze watek numer 3
Jestę watkię nr = 2 i liczę iloczyn
Jestę watkię nr = 1 i liczę iloczyn
Jestę watkię nr = 3 i liczę iloczyn
Koniec wątku 2
Koniec wątku 1
Koniec wątku 3
Czas trwania watkow = 59 376 880 nanosekund
Koniec wątku głównego
c. Trzecie wykonanie
Tworze watek numer 1
Tworze watek numer 2
Tworze watek numer 3
Jestę watkię nr = 1 i liczę iloczyn
Jestę watkię nr = 2 i liczę iloczyn
Jestę watkię nr = 3 i liczę iloczyn
Koniec wątku 1
Koniec wątku 2
Koniec wątku 3
Czas trwania watkow = 37 071 840 nanosekund
Koniec wątku głównego
Średni czas trwania wątków: 46 652 666,(6) nanosekund czyli 46,6 milisekund amplituda czasów: 22 305 040 nanosekund czyli 22,3 milisekund
4. Test na dużej ilości danych( rozmiar wektora(n)=201, drugi rozmiar macierzy (m) = 100, zakres wartości 1-1000(liczby pseudo-losowe) i ilość wątków(k) = 9) a. Pierwsze wykonanie
Tworze watek numer 1
Tworze watek numer 2
Tworze watek numer 3
Tworze watek numer 4
Tworze watek numer 5
Tworze watek numer 6
Tworze watek numer 7
Tworze watek numer 8
Tworze watek numer 9
Jestę watkię nr = 1 i liczę iloczyn
Jestę watkię nr = 3 i liczę iloczyn
Jestę watkię nr = 5 i liczę iloczyn
Jestę watkię nr = 7 i liczę iloczyn
Jestę watkię nr = 9 i liczę iloczyn
Jestę watkię nr = 2 i liczę iloczyn
Jestę watkię nr = 4 i liczę iloczyn
Koniec wątku 1
Jestę watkię nr = 6 i liczę iloczyn
Jestę watkię nr = 8 i liczę iloczyn
Koniec wątku 2
Koniec wątku 3
Koniec wątku 4
Koniec wątku 5
Koniec wątku 6
Koniec wątku 7
Koniec wątku 8
Koniec wątku 9
Czas trwania watkow = 112 846 480 nanosekund
Koniec wątku głównego
b. Drugie wykonanie
Tworze watek numer 1
Tworze watek numer 2
Tworze watek numer 3
Tworze watek numer 4
Tworze watek numer 5
Tworze watek numer 6
Tworze watek numer 7
Tworze watek numer 8
Tworze watek numer 9
Jestę watkię nr = 1 i liczę iloczyn
Jestę watkię nr = 2 i liczę iloczyn
Jestę watkię nr = 4 i liczę iloczyn
Jestę watkię nr = 5 i liczę iloczyn
Jestę watkię nr = 3 i liczę iloczyn
Jestę watkię nr = 6 i liczę iloczyn
Jestę watkię nr = 7 i liczę iloczyn
Jestę watkię nr = 8 i liczę iloczyn
Jestę watkię nr = 9 i liczę iloczyn
Koniec wątku 1
Koniec wątku 2
Koniec wątku 3
Koniec wątku 4
Koniec wątku 5
Koniec wątku 6
Koniec wątku 7
Koniec wątku 8
Koniec wątku 9
Czas trwania watkow = 102 727 840 nanosekund
Koniec wątku głównego
c. Trzecie wykonanie
Tworze watek numer 1
Tworze watek numer 2
Tworze watek numer 3
Tworze watek numer 4
Tworze watek numer 5
Tworze watek numer 6
Tworze watek numer 7
Tworze watek numer 8
Tworze watek numer 9
Jestę watkię nr = 1 i liczę iloczyn
Jestę watkię nr = 3 i liczę iloczyn
Jestę watkię nr = 5 i liczę iloczyn
Jestę watkię nr = 7 i liczę iloczyn
Jestę watkię nr = 9 i liczę iloczyn
Koniec wątku 1
Jestę watkię nr = 2 i liczę iloczyn
Jestę watkię nr = 4 i liczę iloczyn
Jestę watkię nr = 6 i liczę iloczyn
Jestę watkię nr = 8 i liczę iloczyn
Koniec wątku 3
Koniec wątku 5
Koniec wątku 2
Koniec wątku 4
Koniec wątku 7
Koniec wątku 6
Koniec wątku 9
Koniec wątku 8
Czas trwania watkow = 112 021 840 nanosekund
Koniec wątku głównego
Średni czas trwania wątków: 109 198 720 nanosekund czyli 109,1 milisekund Amplituda czasów: 10 118 640 nanosekund czyli 10,1 milisekund
Program korzysta z implementacji interfejsu Runnable 1. Test na małej ilości danych( rozmiar wektora(n)=99, drugi rozmiar macierzy (m) = 50, zakres wartości 1-100(liczby pseudo-losowe) i ilość wątków(k) = 3) a. Pierwsze wykonanie:
Tworze watek numer 1
Jestę watkię nr = 1 i liczę iloczyn
Tworze watek numer 2
Tworze watek numer 3
Jestę watkię nr = 3 i liczę iloczyn
Jestę watkię nr = 2 i liczę iloczyn
Koniec wątku 1
Koniec wątku 2
Koniec wątku 3
Czas trwania watkow = 34 900 040 nanosekund
Koniec wątku głównego
b. Drugie wykonanie:
Tworze watek numer 1
Jestę watkię nr = 1 i liczę iloczyn
Tworze watek numer 2
Tworze watek numer 3
Jestę watkię nr = 3 i liczę iloczyn
Jestę watkię nr = 2 i liczę iloczyn
Koniec wątku 1
Koniec wątku 2
Koniec wątku 3
Czas trwania watkow = 40 614 440 nanosekund
Koniec wątku głównego
c. Trzecie wykonanie
Tworze watek numer 1
Jestę watkię nr = 1 i liczę iloczyn
Tworze watek numer 2
Tworze watek numer 3
Jestę watkię nr = 2 i liczę iloczyn
Jestę watkię nr = 3 i liczę iloczyn
Koniec wątku 1
Koniec wątku 2
Koniec wątku 3
Czas trwania watkow = 35 710 720 nanosekund
Koniec wątku głównego
Średni czas trwania wątków: 37 075 066,(6) nanosekund czyli 37 milisekund Amplituda czasów: 5 714 400 nanosekund czyli 5,7 milisekundy
2. Test na małej ilości danych( rozmiar wektora(n)=99, drugi rozmiar macierzy (m) = 50, zakres wartości 1-100(liczby pseudo-losowe) i ilość wątków(k) = 9) a. Pierwsze wykonanie
Tworze watek numer 1
Jestę watkię nr = 1 i liczę iloczyn
Tworze watek numer 2
Tworze watek numer 3
Jestę watkię nr = 2 i liczę iloczyn
Tworze watek numer 4
Tworze watek numer 5
Jestę watkię nr = 4 i liczę iloczyn
Jestę watkię nr = 3 i liczę iloczyn
Jestę watkię nr = 5 i liczę iloczyn
Tworze watek numer 6
Tworze watek numer 7
Tworze watek numer 8
Jestę watkię nr = 6 i liczę iloczyn
Tworze watek numer 9
Jestę watkię nr = 8 i liczę iloczyn
Jestę watkię nr = 7 i liczę iloczyn
Jestę watkię nr = 9 i liczę iloczyn
Koniec wątku 1
Koniec wątku 2
Koniec wątku 3
Koniec wątku 4
Koniec wątku 5
Koniec wątku 6
Koniec wątku 7
Koniec wątku 8
Koniec wątku 9
Czas trwania watkow = 100 941 000 nanosekund
Koniec wątku głównego
b. Drugie wykonanie
Tworze watek numer 1
Tworze watek numer 2
Tworze watek numer 3
Jestę watkię nr = 2 i liczę iloczyn
Tworze watek numer 4
Tworze watek numer 5
Jestę watkię nr = 4 i liczę iloczyn
Tworze watek numer 6
Tworze watek numer 7
Tworze watek numer 8
Tworze watek numer 9
Jestę watkię nr = 6 i liczę iloczyn
Jestę watkię nr = 8 i liczę iloczyn
Jestę watkię nr = 1 i liczę iloczyn
Jestę watkię nr = 3 i liczę iloczyn
Jestę watkię nr = 5 i liczę iloczyn
Jestę watkię nr = 7 i liczę iloczyn
Jestę watkię nr = 9 i liczę iloczyn
Koniec wątku 1
Koniec wątku 4
Koniec wątku 3
Koniec wątku 6
Koniec wątku 5
Koniec wątku 7
Koniec wątku 8
Koniec wątku 9
Czas trwania watkow = 131 824 720 nanosekund
Koniec wątku głównego
c. Trzecie wykonanie
Tworze watek numer 1
Jestę watkię nr = 1 i liczę iloczyn
Tworze watek numer 2
Tworze watek numer 3
Jestę watkię nr = 3 i liczę iloczyn
Tworze watek numer 4
Jestę watkię nr = 2 i liczę iloczyn
Tworze watek numer 5
Jestę watkię nr = 5 i liczę iloczyn
Tworze watek numer 6
Tworze watek numer 7
Tworze watek numer 8
Jestę watkię nr = 4 i liczę iloczyn
Jestę watkię nr = 7 i liczę iloczyn
Tworze watek numer 9
Jestę watkię nr = 8 i liczę iloczyn
Jestę watkię nr = 6 i liczę iloczyn
Jestę watkię nr = 9 i liczę iloczyn
Koniec wątku 1
Koniec wątku 2
Koniec wątku 3
Koniec wątku 4
Koniec wątku 6
Koniec wątku 5
Koniec wątku 7
Koniec wątku 8
Koniec wątku 9
Czas trwania watkow = 99 501 280 nanosekund
Koniec wątku głównego
Średni czas trwania wątków: 110 755 666,(6) nanosekund czyli 110,7 milisekund amplituda czasów: 32 323 440 nanosekund czyli 32,3 milisekund 3. Test na dużej ilości danych( rozmiar wektora(n)=201, drugi rozmiar macierzy (m) = 100, zakres wartości 1-1000(liczby pseudo-losowe) i ilość wątków(k) =3) a. Pierwsze wykonanie
Tworze watek numer 1
Jestę watkię nr = 1 i liczę iloczyn
Tworze watek numer 2
Tworze watek numer 3
Jestę watkię nr = 3 i liczę iloczyn
Jestę watkię nr = 2 i liczę iloczyn
Koniec wątku 1
Koniec wątku 2
Koniec wątku 3
Czas trwania watkow = 39 624 120 nanosekund
Koniec wątku głównego
b. Drugie wykonanie:
Tworze watek numer 1
Jestę watkię nr = 1 i liczę iloczyn
Tworze watek numer 2
Tworze watek numer 3
Jestę watkię nr = 3 i liczę iloczyn
Jestę watkię nr = 2 i liczę iloczyn
Koniec wątku 1
Koniec wątku 2
Koniec wątku 3
Czas trwania watkow = 36 331 200 nanosekund
Koniec wątku głównego
c. Trzecie wykonanie:
Tworze watek numer 1
Jestę watkię nr = 1 i liczę iloczyn
Tworze watek numer 2
Tworze watek numer 3
Jestę watkię nr = 3 i liczę iloczyn
Jestę watkię nr = 2 i liczę iloczyn
Koniec wątku 1
Koniec wątku 2
Koniec wątku 3
Czas trwania watkow = 39 445 760 nanosekund
Koniec wątku głównego
Średni czas trwania wątków: 38 467 026,(6) nanosekund czyli 38,4 milisekund Amplituda czasów: 3 292 920 nanosekund czyli 3,2 milisekundy
4. Test na dużej ilości danych( rozmiar wektora(n)=201, drugi rozmiar macierzy (m) = 100, zakres wartości 1-1000(liczby pseudo-losowe) i ilość wątków(k) =9) a. Pierwsze wykonanie
Tworze watek numer 1
Tworze watek numer 2
Tworze watek numer 3
Jestę watkię nr = 1 i liczę iloczyn
Jestę watkię nr = 2 i liczę iloczyn
Jestę watkię nr = 3 i liczę iloczyn
Tworze watek numer 4
Tworze watek numer 5
Jestę watkię nr = 4 i liczę iloczyn
Jestę watkię nr = 5 i liczę iloczyn
Tworze watek numer 6
Tworze watek numer 7
Jestę watkię nr = 7 i liczę iloczyn
Tworze watek numer 8
Jestę watkię nr = 6 i liczę iloczyn
Jestę watkię nr = 8 i liczę iloczyn
Tworze watek numer 9
Koniec wątku 1
Jestę watkię nr = 9 i liczę iloczyn
Koniec wątku 2
Koniec wątku 3
Koniec wątku 4
Koniec wątku 5
Koniec wątku 6
Koniec wątku 7
Koniec wątku 8
Koniec wątku 9
Czas trwania watkow = 108 298 480 nanosekund
Koniec wątku głównego
b. Drugie wykonanie
Tworze watek numer 1
Jestę watkię nr = 1 i liczę iloczyn
Tworze watek numer 2
Tworze watek numer 3
Jestę watkię nr = 3 i liczę iloczyn
Jestę watkię nr = 2 i liczę iloczyn
Tworze watek numer 4
Jestę watkię nr = 4 i liczę iloczyn
Tworze watek numer 5
Jestę watkię nr = 5 i liczę iloczyn
Tworze watek numer 6
Tworze watek numer 7
Tworze watek numer 8
Jestę watkię nr = 6 i liczę iloczyn
Jestę watkię nr = 7 i liczę iloczyn
Jestę watkię nr = 8 i liczę iloczyn
Tworze watek numer 9
Jestę watkię nr = 9 i liczę iloczyn
Koniec wątku 1
Koniec wątku 2
Koniec wątku 3
Koniec wątku 4
Koniec wątku 5
Koniec wątku 6
Koniec wątku 7
Koniec wątku 8
Koniec wątku 9
Czas trwania watkow = 101 008 120 nanosekund
Koniec wątku głównego
c. Trzecie wykonanie
Tworze watek numer 1
Jestę watkię nr = 1 i liczę iloczyn
Tworze watek numer 2
Tworze watek numer 3
Tworze watek numer 4
Jestę watkię nr = 3 i liczę iloczyn
Jestę watkię nr = 2 i liczę iloczyn
Tworze watek numer 5
Jestę watkię nr = 4 i liczę iloczyn
Jestę watkię nr = 5 i liczę iloczyn
Tworze watek numer 6
Tworze watek numer 7
Jestę watkię nr = 6 i liczę iloczyn
Jestę watkię nr = 7 i liczę iloczyn
Tworze watek numer 8
Tworze watek numer 9
Jestę watkię nr = 8 i liczę iloczyn
Jestę watkię nr = 9 i liczę iloczyn
Koniec wątku 1
Koniec wątku 2
Koniec wątku 3
Koniec wątku 4
Koniec wątku 5
Koniec wątku 6
Koniec wątku 7
Koniec wątku 8
Koniec wątku 9
Czas trwania watkow = 105 142 080 nanosekund
Koniec wątku głównego
Średni czas trwania wątków: 104 816 226,(6) nanosekund czyli 104,8 milisekund Amplituda czasów: 7 290 360 nanosekund czyli 7,2 milisekundy 5. Opracowanie Wyników:
Metoda\Dane
Średni czas(ms)
Amplituda(ms)
Thread małe dane k=3
35,3
0,89
Thread małe dane k=9
116,3
18
Thread duże dane k=3
46,6
22,3
Thread duże dane k=9
109,1
10,1
Runnable małe dane k=3
37
5,7
Runnable małe dane k=9
110,7
32,3
Runnable duże dane k=3
38,4
3,2
Runnable duże dane k=9
104,8
7,2
Z tabeli wyraźnie wynika że niezależnie od tego czy operujemy na małej liczbie danych, czy na dużej, to większa liczba wątków wydłuża czas wykonywania operacji. Jednak przy dużej ilości danych korzystanie z implementacji interfejsu Runnable usprawnia wykonywanie algorytmu(czasy są mniejsze niż przy korzystaniu z rozszerzenia klasy Thread, oraz amplitudy czasów są w większości przypadków mniejsze)