Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package tk.evilus;
- import java.util.Random;
- import java.util.Scanner;
- public class minmaxMT_test {
- public long[] doTest(int arr[], int threads) {
- long times[] = new long[3];
- minmax mtThreads[] = new minmax[threads];
- for (int i=0; i<3; i++) {
- long startTest = System.currentTimeMillis();
- for (int j = 0; j<threads; j++) {
- mtThreads[j] = new minmax(j, threads, arr);
- }
- for (int j = 0; j<threads; j++) {
- mtThreads[j].start();
- }
- while (true) {
- try {
- for (int j = 0; j<threads; j++) {
- mtThreads[j].join();
- }
- break;
- } catch (Exception e) {
- e.printStackTrace(System.out);
- }
- }
- long endTest = System.currentTimeMillis();
- times[i] = endTest - startTest;
- }
- return times;
- }
- public long[] doTest(double arr[], int threads) {
- long times[] = new long[3];
- minmax mtThreads[] = new minmax[threads];
- for (int i=0; i<3; i++) {
- long startTest = System.currentTimeMillis();
- for (int j = 0; j<threads; j++) {
- mtThreads[j] = new minmax(j, threads, arr);
- }
- for (int j = 0; j<threads; j++) {
- mtThreads[j].start();
- }
- for (int j = 0; j<threads; j++) {
- synchronized(mtThreads[j]) {
- try {
- if (mtThreads[j].isAlive()) {
- mtThreads[j].wait();
- }
- } catch (Exception e) {
- e.printStackTrace(System.out);
- }
- }
- }
- long endTest = System.currentTimeMillis();
- times[i] = endTest - startTest;
- }
- return times;
- }
- public static void main(String[] args) {
- int c;
- long times[][];
- int arr[];
- double arrD[];
- Random randomMachine = new Random();
- Scanner input = new Scanner(System.in);
- minmaxMT_test m = new minmaxMT_test();
- times = new long[20][];
- for (int i=0; i<20; i++) {
- times[i] = new long[3];
- }
- System.out.print("Podaj rozmiar tablic: ");
- c = input.nextInt();
- input.close();
- System.out.println("Test dla tablicy int: ");
- System.out.println("Lp\tWątki\tRozmiar\t\t\tCzas1\tCzas2\tCzas3\tCzas śr.");
- arr = new int[c];
- for (int i = 0; i<c; i++) {
- arr[i] = randomMachine.nextInt(c);
- }
- for (int i=1; i<=10; i++) {
- System.out.print(i+"\t"+i+"\t"+c+"\t\t\t");
- times[i-1] = m.doTest(arr, i);
- long avgTime = 0;
- for (int j = 0; j<times[i-1].length; j++) {
- avgTime = avgTime+times[i-1][j];
- System.out.print(times[i-1][j]+"\t");
- }
- avgTime = avgTime / times[i-1].length;
- System.out.println(avgTime);
- }
- c = 20*c;
- arr = new int[c];
- for (int i = 0; i<c; i++) {
- arr[i] = randomMachine.nextInt(c);
- }
- for (int i=11; i<=20; i++) {
- System.out.print(i+"\t"+(i-10)+"\t"+c+"\t\t\t");
- times[i-1] = m.doTest(arr, i-10);
- long avgTime = 0;
- for (int j = 0; j<times[i-1].length; j++) {
- avgTime = avgTime+times[i-1][j];
- System.out.print(times[i-1][j]+"\t");
- }
- avgTime = avgTime / times[i-1].length;
- System.out.println(avgTime);
- }
- c = c/20;
- System.out.println("\nTest dla tablicy double: ");
- System.out.println("Lp\tWątki\tRozmiar\t\t\tCzas1\tCzas2\tCzas3\tCzas śr.");
- arrD = new double[c];
- for (int i = 0; i<c; i++) {
- arrD[i] = randomMachine.nextInt(c);
- }
- for (int i=1; i<=10; i++) {
- System.out.print(i+"\t"+i+"\t"+c+"\t\t\t");
- times[i-1] = m.doTest(arrD, i);
- long avgTime = 0;
- for (int j = 0; j<times[i-1].length; j++) {
- avgTime = avgTime+times[i-1][j];
- System.out.print(times[i-1][j]+"\t");
- }
- avgTime = avgTime / times[i-1].length;
- System.out.println(avgTime);
- }
- c = 20*c;
- arrD = new double[c];
- for (int i = 0; i<c; i++) {
- arrD[i] = randomMachine.nextInt(c);
- }
- for (int i=11; i<=20; i++) {
- System.out.print(i+"\t"+(i-10)+"\t"+c+"\t\t\t");
- times[i-1] = m.doTest(arrD, i-10);
- long avgTime = 0;
- for (int j = 0; j<times[i-1].length; j++) {
- avgTime = avgTime+times[i-1][j];
- System.out.print(times[i-1][j]+"\t");
- }
- avgTime = avgTime / times[i-1].length;
- System.out.println(avgTime);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement