package com.alimama.mdrill.distinct; import java.io.IOException; public class DistinctCountExample { public static void main(String[] args) throws IOException { run(1); run(10); run(100); run(1000); run(10000); run(100000); run(1000000); run(10000000); // run(100000000); } public static void run(int uniq) throws IOException { for(int j=1;j<10;j++) { DistinctCount dc=new DistinctCount(); dc.setMaxUniqSize(10000); for(int i=0;i<uniq*j;i++) { dc.set("test_bit_"+i); } long uv=dc.getValue(); byte[] data=dc.toBytes(); DistinctCount newdc=new DistinctCount(data); long newuv=newdc.getValue(); double rate=(double) (Math.abs(uv-(uniq*j))*100d/(uniq*j)); System.out.println(""+uv+","+(uniq*j)+","+rate+","+newuv+","+data.length); } } }