/** * */ package com.taobao.top.analysis.util.bloom; import java.io.UnsupportedEncodingException; import java.util.HashMap; import java.util.Map; import com.taobao.top.analysis.statistics.data.DistinctCountEntryValue; /** * @author fangweng * @email fangweng@taobao.com * @date 2011-3-16 * */ public class DistinctEntryTest { /** * @param args * @throws InterruptedException * @throws UnsupportedEncodingException */ public static void main(String[] args) throws InterruptedException, UnsupportedEncodingException { DistinctCountEntryValue distinctEntry = new DistinctCountEntryValue(); ByteBloomFilter bloomFilter = new ByteBloomFilter(10000000,0.0001F,1); distinctEntry.setBloomFilter(bloomFilter); String[][] content = new String[1000][100]; byte[][][] content1 = new byte[1000][100][]; for(int i =0 ; i < 1000; i++) for(int j =0 ; j < 100; j++) { if ( i > 900 || j > 90) { content[i][j] = "hello00"; content1[i][j] = "hello00".getBytes("UTF-8"); } else { content[i][j] = new StringBuilder("hello").append(i).append(j).toString(); content1[i][j] = new StringBuilder("hello").append(i).append(j).toString().getBytes("UTF-8"); } } Map <String,String> map = new HashMap<String,String>(); long beg = System.currentTimeMillis(); for(int i =0 ; i < 1000 ; i++) { for(int j = 0 ; j < 100; j++) { //map.put(content[i][j], content[i][j]); distinctEntry.add(content1[i][j]); } } // System.out.println("count: " + String.valueOf(map.size())); System.out.println("count: " + String.valueOf(distinctEntry.getCount())); System.out.println("bytesize : " + String.valueOf(distinctEntry.getBloomFilter().getByteSize())); System.out.println("已使用内存:" + (Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory()) / (1024*1024)+"M/"); System.out.println("消耗时间:" + String.valueOf(System.currentTimeMillis() - beg)); Thread.sleep(2000); map.clear(); Runtime.getRuntime().gc(); System.out.println("已使用内存:" + (Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory()) / (1024*1024)+"M/"); } }