changeset 21:c8d8864714d4

add build.gradle
author tatsuki
date Tue, 28 Apr 2015 08:16:08 +0900
parents 195c1a644550
children 306441e23b8b
files build.gradle src/main/java/jp/ac/u_ryukyu/ie/cr/tatsuki/jungle_core/ReadTree.java src/main/java/jp/ac/u_ryukyu/ie/cr/tatsuki/jungle_core/ReadTreeThread.java src/main/java/jp/ac/u_ryukyu/ie/cr/tatsuki/jungle_core/findWrapper.java src/main/java/jp/ac/u_ryukyu/ie/cr/tatsuki/xml/ReadJungleThread.java src/main/java/jp/ac/u_ryukyu/ie/cr/tatsuki/xml/TimeMeasurementCreateIndex.java src/main/java/jp/ac/u_ryukyu/ie/cr/tatsuki/xml/TransactionPerSecondMeasurement.java src/main/java/jp/ac/u_ryukyu/ie/cr/tatsuki/xml/TransactionPerSecondMeasurementSeparation.java
diffstat 8 files changed, 230 insertions(+), 252 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/build.gradle	Tue Apr 28 08:16:08 2015 +0900
@@ -0,0 +1,31 @@
+apply plugin: 'java'
+apply plugin: 'maven'
+apply plugin: "eclipse"
+
+group = 'jungle-bench'
+version = '0.0.1-SNAPSHOT'
+
+description = """"""
+
+sourceCompatibility = 1.8
+targetCompatibility = 1.8
+
+
+
+repositories {
+        
+     maven { url "http://repo.maven.apache.org/maven2" }
+}
+dependencies {
+    compile group: 'junit', name: 'junit', version:'4.7'
+        compile fileTree(dir: 'lib', include: '*.jar')
+}
+
+jar {
+    manifest {
+          attributes 'Implementation-Title': 'Gradle Quickstart', 'Implementation-Version': version
+            }
+              from configurations.compile.collect { it.isDirectory() ? it : zipTree(it) }
+                archiveName = 'jungle-bench.jar'
+}
+
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/tatsuki/jungle_core/ReadTree.java	Tue Mar 17 15:37:19 2015 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/tatsuki/jungle_core/ReadTree.java	Tue Apr 28 08:16:08 2015 +0900
@@ -3,6 +3,7 @@
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.DefaultJungle;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTree;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTreeEditor;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.NodePath;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultNodePath;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultTreeEditor;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.DefaultTraverser;
@@ -11,6 +12,7 @@
 import javax.xml.parsers.ParserConfigurationException;
 import java.io.*;
 import java.nio.ByteBuffer;
+import java.util.Random;
 
 /**
  * Created by e115731 on 15/03/14.
@@ -25,16 +27,18 @@
 
         File file = new File("./time/readTree");
         DefaultJungle jungle = new DefaultJungle(null,"sample", new DefaultTreeEditor(new DefaultTraverser()));
-        jungle.createNewTree("hoge");
-        JungleTree tree = jungle.getTreeByName("hoge");
+        JungleTree tree = jungle.createNewTree("tree" );
         JungleTreeEditor editor = tree.getTreeEditor();
-        editor = editor.putAttribute(new DefaultNodePath(), "test", ByteBuffer.wrap("test".getBytes())).b();
-        editor.success();
+        editor = editor.putAttribute(new DefaultNodePath(), "key", ByteBuffer.wrap(String.valueOf(0).getBytes())).b();
+        JungleTreeEditor newEditor = createTree(0, new DefaultNodePath(), editor);
+        if (newEditor.success().isA()) {
+            System.out.println("success faild");
+            System.exit(1);
+        }
 
         PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter(file)));
         for (int THREAD_COUNT = 1; THREAD_COUNT <= cpuNum; THREAD_COUNT++) {
             ReadTreeThread readThread[] = new ReadTreeThread[THREAD_COUNT];
-            ;
             for (int count = 0; THREAD_COUNT > count; count++) {
                 readThread[count] = new ReadTreeThread(tree);
             }
@@ -51,14 +55,39 @@
             for (int count = 0; THREAD_COUNT > count; count++) {
                 readCount = readCount + readThread[count].getFindCount();
                 readThread[count].set(false);
+                readThread[count] = null;
             }
 
             pw.println(THREAD_COUNT + " " + readCount);
             System.out.println(THREAD_COUNT + "readCount = " + readCount);
+            System.gc();
+            System.out.println("-------------GC--------------");
+            Thread.sleep(1000);
         }
 
         pw.close();
     }
 
+    static Integer nodeNum = 1;
+
+    public static JungleTreeEditor createTree(int deep, NodePath path, JungleTreeEditor editor) {
+        String value1 = String.valueOf(nodeNum);
+        nodeNum++;
+        String value2 = String.valueOf(nodeNum);
+        nodeNum++;
+
+        editor = editor.addNewChildAt(path, 0).b();
+        editor = editor.putAttribute(path.add(0), "key", ByteBuffer.wrap(value1.getBytes())).b();
+        editor = editor.addNewChildAt(path, 1).b();
+        editor = editor.putAttribute(path.add(1), "key", ByteBuffer.wrap(value2.getBytes())).b();
+        deep++;
+
+        if (deep < 10) {
+            editor = createTree(deep, path.add(0), editor);
+            editor = createTree(deep, path.add(1), editor);
+        }
+        return editor;
+    }
+
 }
 
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/tatsuki/jungle_core/ReadTreeThread.java	Tue Mar 17 15:37:19 2015 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/tatsuki/jungle_core/ReadTreeThread.java	Tue Apr 28 08:16:08 2015 +0900
@@ -1,10 +1,10 @@
 package jp.ac.u_ryukyu.ie.cr.tatsuki.jungle_core;
 
-import jp.ac.u_ryukyu.cr.ie.tatsuki.xmlTestBbs.JuGrix;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTree;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNode;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.InterfaceTraverser;
 
-import java.util.Random;
+import java.util.Iterator;
 
 /**
  * Created by e115731 on 15/03/14.
@@ -13,16 +13,17 @@
 
     JungleTree tree;
     private long findCount;
-
+    InterfaceTraverser traverser;
     boolean loop = true;
 
     public ReadTreeThread(JungleTree tree) {
         this.tree = tree;
+        traverser = tree.getTraverser(true);
         this.findCount = 0;
     }
 
     public long getFindCount() {
-        System.out.println("thread count = " + findCount);
+        System.out.println("threa count = " + findCount);
         return findCount;
     }
 
@@ -33,16 +34,11 @@
     @Override
     public void run() {
         while (loop) {
-        TreeNode root = tree.getRootNode();
-        if (root.getAttributes().getString("test").equals("test"))
-            findCount++;
-        else
-            System.out.println("faild");
- //       String attribute = root.getAttributes().getString("test");
-   //     if (attribute.equals("test"))
-  //          findCount++;
-  //      else
-   //         System.out.println("faild");
+            Iterator<TreeNode> it = traverser.find(null, "key", "0");
+            if (it.hasNext())
+                findCount++;
+            else
+                System.out.println("faild");
         }
     }
 }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/tatsuki/jungle_core/findWrapper.java	Tue Apr 28 08:16:08 2015 +0900
@@ -0,0 +1,24 @@
+package jp.ac.u_ryukyu.ie.cr.tatsuki.jungle_core;
+
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTree;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNode;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.InterfaceTraverser;
+
+import java.util.Iterator;
+
+/**
+ * Created by e115731 on 15/03/20.
+ */
+public class findWrapper {
+
+    InterfaceTraverser traverser;
+
+    public findWrapper(JungleTree tree){
+        this.traverser = tree.getTraverser(true);
+    }
+
+    public boolean find(){
+        Iterator<TreeNode> it = traverser.find(null,"test","test");
+        return it.hasNext();
+    }
+}
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/tatsuki/xml/ReadJungleThread.java	Tue Mar 17 15:37:19 2015 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/tatsuki/xml/ReadJungleThread.java	Tue Apr 28 08:16:08 2015 +0900
@@ -33,10 +33,7 @@
         while (loop) {
             
             findCount++;
-            Random rnd = new Random();
-
-            String value = String.valueOf(rnd.nextInt(400));
-            boolean account = jugrix.isActive("p:" + value,"v:1");
+            boolean account = jugrix.isActive("p:" + 100,"v:1");
             if (account)
               successCount++;
             else
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/tatsuki/xml/TimeMeasurementCreateIndex.java	Tue Mar 17 15:37:19 2015 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/tatsuki/xml/TimeMeasurementCreateIndex.java	Tue Apr 28 08:16:08 2015 +0900
@@ -1,108 +0,0 @@
-package jp.ac.u_ryukyu.ie.cr.tatsuki.xml;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.nio.ByteBuffer;
-import java.util.Iterator;
-
-import javax.xml.parsers.ParserConfigurationException;
-import javax.xml.parsers.SAXParser;
-import javax.xml.parsers.SAXParserFactory;
-
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.TreeContext;
-import org.xml.sax.SAXException;
-
-import fj.Ord;
-import fj.data.List;
-import fj.data.TreeMap;
-import ac.jp.u_ryukyu.cr.ie.tatsuki.xmlReader.ReadXmlHandler;
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.DefaultJungle;
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.DefaultJungleTree;
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.Jungle;
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTree;
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTreeEditor;
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent.ChangeList;
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent.NullJournal;
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.NodePath;
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultNodePath;
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultTreeEditor;
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNode;
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.TreeOperation;
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.DefaultTreeContext;
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.DefaultTreeNode;
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.DefaultTraverser;
-import jp.ac.u_ryukyu.ie.cr.tatsuki.jungle.store.index.ParentIndex;
-
-public class TimeMeasurementCreateIndex {
-
-  public static void main(String args[]) throws FileNotFoundException, ParserConfigurationException, SAXException,
-      IOException {
-    
-    int maxPersonCount = Integer.parseInt(args[0]);
-    Jungle jungle = new DefaultJungle(null, "hoge", new DefaultTreeEditor(new DefaultTraverser()));
-    JungleTree orgTree = readXml("Organization", jungle);
-    JungleTree roleTree = readXml("Role", jungle);
-
-    File file = new File("./time/createParentIndexUntil");
-    file.delete();
-
-    for (int personCount = 0; personCount <= maxPersonCount;) {
-      JungleTree tree = createJungleTree("Tree");
-      JungleTreeEditor editor = tree.getTreeEditor();
-      NodePath path = new DefaultNodePath();
-      editor = editor.addNewChildAt(path, 0).b();
-      editor = editor.putAttribute(path.add(0), "element", ByteBuffer.wrap("Persons".getBytes())).b();
-
-      for (int count = 0; count < personCount; count++) {
-        editor = extendXmlTree.extendsTree(editor, orgTree, roleTree, count);
-      }
-      editor.success();
-      personCount = personCount + 10;
-      System.out.println("personCount" + personCount);
-    }
-  }
-
-  private static JungleTree createJungleTree(final String name) {
-    ChangeList list = new ChangeList() {
-      @Override
-      public Iterator<TreeOperation> iterator() {
-        List<TreeOperation> nil = List.nil();
-        return nil.iterator();
-      }
-
-      @Override
-      public String uuid() {
-        return "hoge";
-      }
-
-      @Override
-      public String getTreeName() {
-        return name;
-      }
-
-    };
-
-    DefaultTreeNode root = new DefaultTreeNode();
-    TreeMap<String, TreeMap<String, TreeMap<TreeNode, TreeNode>>> indexList = TreeMap.empty(Ord.stringOrd);
- //   TreeMap<TreeNode, TreeNode> parentIndex = new ParentIndex().getParentIndex();
-    ParentIndex parentIndex = new ParentIndex();
-    TreeContext tc = new DefaultTreeContext(root, null, list, "hoge", name, 0, indexList,
-        parentIndex.getParentIndex());
-    JungleTree newTree = new DefaultJungleTree(tc, "hoge", new NullJournal().getWriter(), new DefaultTreeEditor(
-        new DefaultTraverser()));
-    return newTree;
-  }
-
-  private static JungleTree readXml(String xml, Jungle jungle) throws ParserConfigurationException, SAXException,
-      IOException, FileNotFoundException {
-    SAXParserFactory saxParserFactory = SAXParserFactory.newInstance();
-    SAXParser saxParser = saxParserFactory.newSAXParser();
-    JungleTree tree = jungle.createNewTree(xml);
-    ReadXmlHandler readXmlHandler = new ReadXmlHandler(tree);
-    String currentPath = System.getProperty("user.dir");
-    saxParser.parse(new FileInputStream(currentPath + "/xml/" + xml + ".xml"), readXmlHandler);
-    return readXmlHandler.getTree();
-  }
-}
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/tatsuki/xml/TransactionPerSecondMeasurement.java	Tue Mar 17 15:37:19 2015 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/tatsuki/xml/TransactionPerSecondMeasurement.java	Tue Apr 28 08:16:08 2015 +0900
@@ -18,113 +18,117 @@
 
 public class TransactionPerSecondMeasurement {
 
-  public static void main(String[] args) throws InterruptedException, IOException, ParserConfigurationException, SAXException {
-    System.out.println("endCreatejugrix");
-    JuGrix jugrix = extendXmlTree.createJuGrix(true,400);
-     System.out.println(Runtime.getRuntime().availableProcessors());
+    public static void main(String[] args) throws InterruptedException, IOException, ParserConfigurationException, SAXException {
+        JuGrix jugrix = extendXmlTree.createJuGrix(true, 400);
+        System.out.println("endCreatejugrix");
+        System.out.println(Runtime.getRuntime().availableProcessors());
+
+        if (args.length > 0) {
 
-    if (args.length > 0) {
-      
-      if (args[0].equals("read"))
-        readOnly(jugrix);
-      if (args[0].equals("write"))
-        readAndWrite(jugrix);
+            if (args[0].equals("read"))
+                readOnly(jugrix);
+            if (args[0].equals("write"))
+                readAndWrite(jugrix);
 
-    } else
-      System.out.println("Please with the argument");
-  }
+        } else
+            System.out.println("Please with the argument");
+    }
+
+    private static void readAndWrite(JuGrix jugrix) throws InterruptedException, IOException {
+        System.out.println("read and write");
+        Runtime rt = Runtime.getRuntime();
+        int cpuNum = rt.availableProcessors();
 
-  private static void readAndWrite(JuGrix jugrix) throws InterruptedException, IOException {
-    System.out.println("read and write");
-    Runtime rt = Runtime.getRuntime();
-    int cpuNum = rt.availableProcessors();
-    
-    File file = new File("./time/newTransactionReadAndWrite");
-    PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter(file)));
+        File file = new File("./time/newTransactionReadAndWrite");
+        PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter(file)));
 
-    for (int THREAD_COUNT = 1; THREAD_COUNT <= cpuNum; THREAD_COUNT++) {
-      ReadJungleThread readThread[] = new ReadJungleThread[THREAD_COUNT];
-      for (int count = 0; THREAD_COUNT > count; count++) {
-        readThread[count] = new ReadJungleThread(jugrix);
-      }
+        for (int THREAD_COUNT = 1; THREAD_COUNT <= cpuNum; THREAD_COUNT++) {
+            ReadJungleThread readThread[] = new ReadJungleThread[THREAD_COUNT];
+            for (int count = 0; THREAD_COUNT > count; count++) {
+                readThread[count] = new ReadJungleThread(jugrix);
+            }
 
-      WriteJungleThread writeThread =  new WriteJungleThread(jugrix);
-      writeThread.start();
-      for (int count = 0; THREAD_COUNT > count; count++) {
-        readThread[count].start();
-      }
+            WriteJungleThread writeThread = new WriteJungleThread(jugrix);
+            writeThread.start();
+            for (int count = 0; THREAD_COUNT > count; count++) {
+                readThread[count].start();
+            }
 
-      System.out.println("StartThread");
+            System.out.println("StartThread");
 
-      Thread.sleep(1000);
-      writeThread.set(false);
-      int readCount = 0;
+            Thread.sleep(1000);
+            writeThread.set(false);
+            int readCount = 0;
 
-      for (int count = 0; THREAD_COUNT > count; count++) {
-        readCount = readCount + readThread[count].getFindCount();
-        readThread[count].set(false);
-      }
+            for (int count = 0; THREAD_COUNT > count; count++) {
+                readCount = readCount + readThread[count].getFindCount();
+                readThread[count].set(false);
+            }
 
 
-      pw.println(THREAD_COUNT + " " + readCount);
-      System.out.println(THREAD_COUNT + "readCount = " + readCount);
-      Thread.sleep(1000);
+            pw.println(THREAD_COUNT + " " + readCount);
+            System.out.println(THREAD_COUNT + "readCount = " + readCount);
+            Thread.sleep(1000);
+        }
+        pw.close();
     }
-    pw.close();
-  }
 
-  private static void readOnly(JuGrix jugrix) throws InterruptedException, IOException {
-    System.out.println("read only");
-    Runtime rt = Runtime.getRuntime();
-    int cpuNum = rt.availableProcessors();
+    private static void readOnly(JuGrix jugrix) throws InterruptedException, IOException {
+        System.out.println("read only");
+        Runtime rt = Runtime.getRuntime();
+        int cpuNum = rt.availableProcessors();
 
-    File file = new File("./time/readOnly");
-    PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter(file)));
-    for (int THREAD_COUNT = 1; THREAD_COUNT <= cpuNum; THREAD_COUNT++) {
-      ReadJungleThread readThread[] = new ReadJungleThread[THREAD_COUNT];
-      ;
-      for (int count = 0; THREAD_COUNT > count; count++) {
-        readThread[count] = new ReadJungleThread(jugrix);
-      }
+        File file = new File("./time/readOnly");
+        PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter(file)));
+        for (int THREAD_COUNT = 1; THREAD_COUNT <= cpuNum; THREAD_COUNT++) {
+            ReadJungleThread readThread[] = new ReadJungleThread[THREAD_COUNT];
+            ;
+            for (int count = 0; THREAD_COUNT > count; count++) {
+                readThread[count] = new ReadJungleThread(jugrix);
+            }
 
-      for (int count = 0; THREAD_COUNT > count; count++) {
-        readThread[count].start();
-      }
+            for (int count = 0; THREAD_COUNT > count; count++) {
+                readThread[count].start();
+            }
 
-      System.out.println("StartThread");
+            System.out.println("StartThread");
 
-      Thread.sleep(1000);
-      int readCount = 0;
+            Thread.sleep(1000);
+            int readCount = 0;
 
-      for (int count = 0; THREAD_COUNT > count; count++) {
-        readCount = readCount + readThread[count].getFindCount();
-        readThread[count].set(false);
-      }
-      
-      pw.println(THREAD_COUNT + " " + readCount);
-      System.out.println(THREAD_COUNT + "readCount = " + readCount);
+            for (int count = 0; THREAD_COUNT > count; count++) {
+                readCount = readCount + readThread[count].getFindCount();
+                readThread[count].set(false);
+                readThread[count] = null;
+            }
+
+            pw.println(THREAD_COUNT + " " + readCount);
+            System.out.println(THREAD_COUNT + "readCount = " + readCount);
+            System.gc();
+            System.out.println("-------------GC--------------");
+            Thread.sleep(1000);
+        }
+
+        pw.close();
     }
-    
-    pw.close();
-  }
 
-  static String key = "KEY";
-
-  public static JungleTreeEditor createTree(int deep, NodePath path, JungleTreeEditor editor) {
+    static String key = "KEY";
 
-    Random rnd = new Random();
-    String value1 = String.valueOf(rnd.nextInt(1000));
-    String value2 = String.valueOf(rnd.nextInt(1000));
-    editor = editor.addNewChildAt(path, 0).b();
-    editor = editor.putAttribute(path.add(0), key, ByteBuffer.wrap(value1.getBytes())).b();
-    editor = editor.addNewChildAt(path, 1).b();
-    editor = editor.putAttribute(path.add(0), key, ByteBuffer.wrap(value2.toString().getBytes())).b();
-    deep++;
+    public static JungleTreeEditor createTree(int deep, NodePath path, JungleTreeEditor editor) {
 
-    if (deep < 12) {
-      editor = createTree(deep, path.add(0), editor);
-      editor = createTree(deep, path.add(1), editor);
+        Random rnd = new Random();
+        String value1 = String.valueOf(rnd.nextInt(1000));
+        String value2 = String.valueOf(rnd.nextInt(1000));
+        editor = editor.addNewChildAt(path, 0).b();
+        editor = editor.putAttribute(path.add(0), key, ByteBuffer.wrap(value1.getBytes())).b();
+        editor = editor.addNewChildAt(path, 1).b();
+        editor = editor.putAttribute(path.add(0), key, ByteBuffer.wrap(value2.toString().getBytes())).b();
+        deep++;
+
+        if (deep < 12) {
+            editor = createTree(deep, path.add(0), editor);
+            editor = createTree(deep, path.add(1), editor);
+        }
+        return editor;
     }
-    return editor;
-  }
 }
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/tatsuki/xml/TransactionPerSecondMeasurementSeparation.java	Tue Mar 17 15:37:19 2015 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/tatsuki/xml/TransactionPerSecondMeasurementSeparation.java	Tue Apr 28 08:16:08 2015 +0900
@@ -7,52 +7,57 @@
 import java.io.PrintWriter;
 
 import javax.xml.parsers.ParserConfigurationException;
+
 import jp.ac.u_ryukyu.cr.ie.tatsuki.xmlTestBbs.JuGrix;
 import org.xml.sax.SAXException;
 
 public class TransactionPerSecondMeasurementSeparation {
 
-  public static void main(String[] args) throws InterruptedException, IOException, ParserConfigurationException,
-      SAXException {
-    System.out.println("endCreatejugrix");
-    
-    Runtime rt = Runtime.getRuntime();
-    int cpuNum = rt.availableProcessors();
-    System.out.println("CPUCOUNT = " + cpuNum);
-    File file = new File("./time/copyJungleReadOnly");
+    public static void main(String[] args) throws InterruptedException, IOException, ParserConfigurationException,
+            SAXException {
+        System.out.println("endCreatejugrix");
+
+        Runtime rt = Runtime.getRuntime();
+        int cpuNum = rt.availableProcessors();
+        System.out.println("CPUCOUNT = " + cpuNum);
+        File file = new File("./time/copyJungleReadOnly");
 
-    JuGrix jugrix[] = new JuGrix[cpuNum];
-    for (int THREAD_COUNT = 0; THREAD_COUNT < cpuNum; THREAD_COUNT++) {
-      jugrix[THREAD_COUNT] = extendXmlTree.createJuGrix(true, 400);
-    }
-    
-    PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter(file)));
-    for (int THREAD_COUNT = 1; THREAD_COUNT <= cpuNum; THREAD_COUNT++) {
-      ReadJungleThread readThread[] = new ReadJungleThread[THREAD_COUNT];
+        JuGrix jugrix[] = new JuGrix[cpuNum];
+        for (int THREAD_COUNT = 0; THREAD_COUNT < cpuNum; THREAD_COUNT++) {
+            jugrix[THREAD_COUNT] = extendXmlTree.createJuGrix(true, 400);
+        }
+
+        PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter(file)));
+        for (int THREAD_COUNT = 1; THREAD_COUNT <= cpuNum; THREAD_COUNT++) {
+            ReadJungleThread readThread[] = new ReadJungleThread[THREAD_COUNT];
+
+            for (int count = 0; THREAD_COUNT > count; count++) {
+                readThread[count] = new ReadJungleThread(jugrix[count]);
+            }
 
-      for (int count = 0; THREAD_COUNT > count; count++) {
-        readThread[count] = new ReadJungleThread(jugrix[count]);
-      }
+            for (int count = 0; THREAD_COUNT > count; count++) {
+                readThread[count].start();
+            }
 
-      for (int count = 0; THREAD_COUNT > count; count++) {
-        readThread[count].start();
-      }
+            System.out.println("StartThread");
 
-      System.out.println("StartThread");
+            Thread.sleep(1000);
+            int readCount = 0;
 
-      Thread.sleep(1000);
-      int readCount = 0;
+            for (int count = 0; THREAD_COUNT > count; count++) {
+                readThread[count].set(false);
+                readCount = readCount + readThread[count].getFindCount();
+                readThread[count] = null;
+            }
 
-      for (int count = 0; THREAD_COUNT > count; count++) {
-        readThread[count].set(false);
-        readCount = readCount + readThread[count].getFindCount();
-      }
+            pw.println(THREAD_COUNT + " " + readCount);
+            System.out.println(THREAD_COUNT + "readCount = " + readCount);
+            System.gc();
+            System.out.println("-------------GC--------------");
+            Thread.sleep(1000);
+        }
 
-      pw.println(THREAD_COUNT + " " + readCount);
-      System.out.println(THREAD_COUNT + "readCount = " + readCount);
+        pw.close();
     }
 
-    pw.close();
-  }
-
 }