view src/main/java/jp/ac/u_ryukyu/ie/cr/jungle/test/TreeMapBenchMark.java @ 0:44465893e8b8

first Commit
author Kazuma
date Wed, 30 Nov 2016 01:47:55 +0900
parents
children
line wrap: on
line source

package jp.ac.u_ryukyu.ie.cr.jungle.test;

import jp.ac.u_ryukyu.ie.cr.jungle.data.treemap.TreeMap;

import java.io.*;

/**
 * Created by e115731 on 15/03/17.
 */
public class TreeMapBenchMark {
    public static void main(String[] args) throws InterruptedException, IOException {

        if (args.length == 0) {
            System.out.println("args get or getLoop or list");
            System.exit(0);
        }

        Runtime rt = Runtime.getRuntime();
        int cpuNum = rt.availableProcessors();

        File file = new File("./time/" + args[0] + "Time");

        PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter(file)));

        AbstractTreeMapThread readThread[];

        for (int THREAD_COUNT = 1; THREAD_COUNT <= cpuNum; THREAD_COUNT++) {

            readThread = new AbstractTreeMapThread[THREAD_COUNT];

            switch (args[0]) {
                case "util": {
                    java.util.TreeMap<Long, String> map = new java.util.TreeMap<>();
                    for (long count = 0; count < 1000; count++) {
                        map.put(count, String.valueOf(count));
                    }

                    for (int count = 0; THREAD_COUNT > count; count++) {
                        readThread[count] = new UtilTreeMapGetThread(map);
                    }
                    break;
                }
                case "data": {
                    TreeMap<Long,String> map = new TreeMap<>();
                    for (long count = 0; count < 1000; count++) {
                        map = map.put(count, String.valueOf(count));
                    }

                    for (int count = 0; THREAD_COUNT > count; count++) {
                        readThread[count] = new TatsukiTreeMapGetThread(map);
                    }
                    break;
                }
                default:
                    System.out.println("not allow args");
                    System.exit(0);
            }

            for (int count = 0; THREAD_COUNT > count; count++) {
                readThread[count].start();
            }

            System.out.println("StartThread");

            Thread.sleep(1000);
            long readCount = 0;

            for (int count = 0; THREAD_COUNT > count; count++) {
                readThread[count].set(false);
                readCount = readCount + readThread[count].getFindCount();
                readThread[count].stop();
            }

            pw.println(THREAD_COUNT + " " + readCount);
            System.out.println(THREAD_COUNT + "readCount = " + readCount);
            Thread.sleep(1000);
        }

        pw.close();
    }

}