package net.yadan.banana.utils;
import static org.junit.Assert.assertEquals;
import net.yadan.banana.utils.LRU;
public class LRUBenchmark {
public static void main(String[] args) {
int K = 1000;
int M = 1000000;
int test[][] = { { 50 * K, M }, { M, M }, { 3 * M, 20 * M }, { 20 * M, 100 * M },
{ 50 * M, 100 * M }, { 100 * M, 200 * M } };
for (int k = 0; k < test.length; k++) {
long t = System.currentTimeMillis();
int cachesize = test[k][0];
int inserts = test[k][1];
LRU lru = new LRU(cachesize, false);
for (long i = 0; i < inserts; i++) {
lru.add(i);
}
long e = System.currentTimeMillis() - t;
System.out.println(String.format(
"LRU size = %d, Processed %d lru inserts in %d ms (%d inserts/sec)", cachesize, inserts,
e, ((int) (inserts / (e / 1000.0)) * 100) / 100));
assertEquals(cachesize, lru.size());
}
}
}