DomainThrottlePerformanceTester.java
package sk.iway.iwcm.dmail;
import java.math.BigInteger;
import java.security.SecureRandom;
import java.util.Collections;
import java.util.Random;
import java.util.SortedMap;
import java.util.TreeMap;
import sk.iway.iwcm.Tools;
import sk.iway.iwcm.doc.DebugTimer;
/**
* DomainThrottlePerformanceTester.java
*
*@Title webjet7
*@Company Interway s.r.o. (www.interway.sk)
*@Copyright Interway s.r.o. (c) 2001-2013
*@author $Author: jeeff mhalas $
*@version $Revision: 1.3 $
*@created Date: 26.7.2013 11:20:01
*@modified $Date: 2004/08/16 06:26:11 $
*/
public class DomainThrottlePerformanceTester
{
/**
* @param args
*/
public static void main(String[] args)
{
SortedMap<Long, String> map = Collections.synchronizedSortedMap(new TreeMap<Long,String>());
Random rnd = new Random();
SecureRandom random = new SecureRandom();
DebugTimer dt = new DebugTimer("treemap test");
for(int i = 0; i < 1000;i++)
{
map.put(nextLong(rnd,10000000), new BigInteger(130, random).toString(32));
}
dt.diff("after 10^3 rec");
map.clear();
for(int i = 0; i < 1000000;i++)
{
map.put(nextLong(rnd,10000000), new BigInteger(130, random).toString(32));
}
dt.diff("after 10^6 rec");
dt.diff("before add");
map.put(123456789l, "domain");
dt.diff("after add");
dt.diff("before count");
int count =0;
for(String domain : map.values())
{
Tools.isNotEmpty(domain);
count++;
}
dt.diff("after count: "+count);
}
static long nextLong(Random rng, long n) {
// error checking and 2^x checking removed for simplicity.
long bits, val;
do {
bits = (rng.nextLong() << 1) >>> 1;
val = bits % n;
} while (bits-val+(n-1) < 0L);
return val;
}
}