changeset 18:190890be73e4

TreeMap memory and TreeMap get
author one
date Fri, 26 Dec 2014 12:04:00 +0900
parents 917ecf2c7350
children 17cc11b04157
files src/main/java/jp/ac/u_ryukyu/ie/cr/tatsuki/xml/FJTreeMapSetTime.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/UntilTreeMapPutTime.java src/main/java/jp/ac/u_ryukyu/ie/cr/tatsuki/xml/UtilTreeMapMemery.java src/main/java/jp/ac/u_ryukyu/ie/cr/tatsuki/xml/extendXmlTree.java src/main/java/jp/ac/u_ryukyu/ie/cr/tatsuki/xml/functionalJavaTreeMapMemory.java
diffstat 6 files changed, 99 insertions(+), 13 deletions(-) [+]
line wrap: on
line diff
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/tatsuki/xml/FJTreeMapSetTime.java	Wed Dec 24 15:48:32 2014 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/tatsuki/xml/FJTreeMapSetTime.java	Fri Dec 26 12:04:00 2014 +0900
@@ -5,6 +5,7 @@
 import java.io.FileWriter;
 import java.io.IOException;
 import java.io.PrintWriter;
+import java.util.Random;
 
 import fj.Ord;
 import fj.data.Option;
@@ -27,17 +28,26 @@
       t1 = System.currentTimeMillis();
       map = map.set(count, count);
       t2 = System.currentTimeMillis();
-      if (count % 100 == 0) {
+      if (count % 100 == 0 && count != 0) {
         System.out.println("put time " + count + " " + (t2 - t1));
-        t3 = System.currentTimeMillis();
-        Option<Integer> op = map.get(count);
-        t4 = System.currentTimeMillis();
-        System.out.println("get time " + count + " " + (t4 - t3));
+        long sum = 0;
+        for (int count1 = 0; count1 < 20; count1++) {
+          Random ran = new Random();
+          int getValue = ran.nextInt(count);
+          t3 = System.currentTimeMillis();
+          Option<Integer> op = map.get(getValue);
+          t4 = System.currentTimeMillis();
+          sum = sum + (t4 - t3);
+        }
+        System.out.println("get time = " + (sum / 20));
         putPw.println(count + " " + (t2 - t1));
-        getPw.println(count + " " + (t4 - t3));
+        getPw.println(count + " " + (sum / 20));
       }
     }
     putPw.close();
     getPw.close();
   }
+
 }
+
+
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/tatsuki/xml/TransactionPerSecondMeasurement.java	Wed Dec 24 15:48:32 2014 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/tatsuki/xml/TransactionPerSecondMeasurement.java	Fri Dec 26 12:04:00 2014 +0900
@@ -55,7 +55,7 @@
 
       System.out.println("StartThread");
 
-      Thread.sleep(10000);
+      Thread.sleep(1000);
       writeThread.set(false);
       int readCount = 0;
 
@@ -90,7 +90,7 @@
 
       System.out.println("StartThread");
 
-      Thread.sleep(10000);
+      Thread.sleep(1000);
       int readCount = 0;
 
       for (int count = 0; THREAD_COUNT > count; count++) {
@@ -117,7 +117,7 @@
     editor = editor.putAttribute(path.add(0), key, ByteBuffer.wrap(value2.toString().getBytes())).b();
     deep++;
 
-    if (deep < 10) {
+    if (deep < 12) {
       editor = createTree(deep, path.add(0), editor);
       editor = createTree(deep, path.add(1), editor);
     }
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/tatsuki/xml/UntilTreeMapPutTime.java	Wed Dec 24 15:48:32 2014 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/tatsuki/xml/UntilTreeMapPutTime.java	Fri Dec 26 12:04:00 2014 +0900
@@ -10,10 +10,10 @@
 public class UntilTreeMapPutTime {
 
   public static void main(String args[]) throws IOException {
-    File file = new File("./time/until");
+    File file = new File("./time/untilGet");
     PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter(file)));
     TreeMap<Integer, Integer> map = new TreeMap<Integer,Integer>();
-    for (int count = 0; count <= 48800; count++) {
+    for (int count = 0; count <= 30000; count++) {
       long t1 = System.currentTimeMillis();
       map.put(count, count);
       long t2 = System.currentTimeMillis();
@@ -23,7 +23,7 @@
       System.out.println("put time " + count + " " + (t2 - t1));
       System.out.println("get time " + count + " " + (t3 - t2));
 
-      pw.println(count + " " + (t2 - t1));
+      pw.println(count + " " + (t3 - t2));
       }
     }
     pw.close();
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/tatsuki/xml/UtilTreeMapMemery.java	Fri Dec 26 12:04:00 2014 +0900
@@ -0,0 +1,38 @@
+package jp.ac.u_ryukyu.ie.cr.tatsuki.xml;
+
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.util.LinkedList;
+import java.util.TreeMap;
+
+
+public class UtilTreeMapMemery {
+
+  public static void main(String args[]) throws IOException {
+    File getFile = new File("./time/utilMemory");
+    PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter(getFile)));
+    TreeMap<Integer, Integer> map = new TreeMap<Integer, Integer>();
+    LinkedList<TreeMap<Integer, Integer>> list = new LinkedList<TreeMap<Integer, Integer>>();
+    list.add(map);
+    for (Integer count = 0; count <= 10000; count++) {
+      TreeMap<Integer, Integer> newMap = list.getLast();
+      TreeMap<Integer, Integer> copyMap = new TreeMap<Integer, Integer>(newMap);
+      copyMap.put(count, count);
+      list.add(copyMap);
+      long used = getMemory();
+      System.out.println(count + " " + used);
+      pw.println(count + " " + used);
+    }
+    pw.close();
+  }
+
+  public static long getMemory() {
+    long free = Runtime.getRuntime().freeMemory() / 1024;
+    long total = Runtime.getRuntime().totalMemory() / 1024;
+    long used = total - free;
+    return used;
+  }
+}
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/tatsuki/xml/extendXmlTree.java	Wed Dec 24 15:48:32 2014 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/tatsuki/xml/extendXmlTree.java	Fri Dec 26 12:04:00 2014 +0900
@@ -46,7 +46,7 @@
     if (args[1].equals("true"))
       useIndex = true;
 
-    for (int personCount = 10; personCount <= maxPersonCount; personCount = personCount + 10) {
+    for (int personCount = 100; personCount <= maxPersonCount; personCount = personCount + 100) {
       createJuGrix(useIndex, personCount);
     }
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/tatsuki/xml/functionalJavaTreeMapMemory.java	Fri Dec 26 12:04:00 2014 +0900
@@ -0,0 +1,38 @@
+package jp.ac.u_ryukyu.ie.cr.tatsuki.xml;
+
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.util.LinkedList;
+
+import fj.Ord;
+import fj.data.TreeMap;
+
+
+public class functionalJavaTreeMapMemory {
+  public static void main(String args[]) throws IOException {
+    File getFile = new File("./time/fjMemory");
+    PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter(getFile)));
+    TreeMap<Integer, Integer> map = TreeMap.empty(Ord.intOrd);
+    LinkedList<TreeMap<Integer, Integer>> list = new LinkedList<TreeMap<Integer, Integer>>();
+    list.add(map);
+    for (Integer count = 0; count <= 10000; count++) {
+      TreeMap<Integer, Integer> newMap = list.getLast();
+      TreeMap<Integer, Integer> copyMap = newMap.set(count, count);
+      list.add(copyMap);
+      long used = getMemory();
+      System.out.println(count + " " + used);
+      pw.println(count + " " + used);
+    }
+    pw.close();
+  }
+
+  public static long getMemory() {
+    long free = Runtime.getRuntime().freeMemory() / 1024;
+    long total = Runtime.getRuntime().totalMemory() / 1024;
+    long used = total - free;
+    return used;
+  }
+}