diff src/main/java/jp/ac/u_ryukyu/ie/cr/tatsuki/treemap/functionalJavaTreeMapMemory.java @ 20:195c1a644550

benchmark add
author tatsuki
date Tue, 17 Mar 2015 15:37:19 +0900
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/tatsuki/treemap/functionalJavaTreeMapMemory.java	Tue Mar 17 15:37:19 2015 +0900
@@ -0,0 +1,38 @@
+package jp.ac.u_ryukyu.ie.cr.tatsuki.treemap;
+
+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;
+  }
+}