# HG changeset patch # User one # Date 1419563040 -32400 # Node ID 190890be73e4d5892c097a25b9c8668933acef45 # Parent 917ecf2c735068528aea03082328d487b4acc04e TreeMap memory and TreeMap get diff -r 917ecf2c7350 -r 190890be73e4 src/main/java/jp/ac/u_ryukyu/ie/cr/tatsuki/xml/FJTreeMapSetTime.java --- 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 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 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(); } + } + + diff -r 917ecf2c7350 -r 190890be73e4 src/main/java/jp/ac/u_ryukyu/ie/cr/tatsuki/xml/TransactionPerSecondMeasurement.java --- 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); } diff -r 917ecf2c7350 -r 190890be73e4 src/main/java/jp/ac/u_ryukyu/ie/cr/tatsuki/xml/UntilTreeMapPutTime.java --- 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 map = new TreeMap(); - 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(); diff -r 917ecf2c7350 -r 190890be73e4 src/main/java/jp/ac/u_ryukyu/ie/cr/tatsuki/xml/UtilTreeMapMemery.java --- /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 map = new TreeMap(); + LinkedList> list = new LinkedList>(); + list.add(map); + for (Integer count = 0; count <= 10000; count++) { + TreeMap newMap = list.getLast(); + TreeMap copyMap = new TreeMap(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; + } +} diff -r 917ecf2c7350 -r 190890be73e4 src/main/java/jp/ac/u_ryukyu/ie/cr/tatsuki/xml/extendXmlTree.java --- 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); } diff -r 917ecf2c7350 -r 190890be73e4 src/main/java/jp/ac/u_ryukyu/ie/cr/tatsuki/xml/functionalJavaTreeMapMemory.java --- /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 map = TreeMap.empty(Ord.intOrd); + LinkedList> list = new LinkedList>(); + list.add(map); + for (Integer count = 0; count <= 10000; count++) { + TreeMap newMap = list.getLast(); + TreeMap 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; + } +}