You need to run a performance test like this
Map<Object, Object> map = Collections.synchronizedMap(new LinkedHashMap<Object, Object>(16, 0.7f, true) {
@Override
protected boolean removeEldestEntry(Map.Entry<Object, Object> eldest) {
return size() > 1000;
}
});
Integer[] values = new Integer[10000];
for (int i = 0; i < values.length; i++)
values[i] = i;
long start = System.nanoTime();
for (int i = 0; i < 1000; i++) {
for (int j = 0; j < values.length; j++) {
map.get(values[j]);
map.get(values[j / 2]);
map.get(values[j / 3]);
map.get(values[j / 4]);
map.put(values[j], values[j]);
}
}
long time = System.nanoTime() - start;
long rate = (5 * values.length * 1000) * 1000000000L / time;
System.out.printf("Performed get/put operations at a rate of %,d per second%n", rate);
prints on my 2.5 GHz i5 laptop
Performed get/put operations at a rate of 27,170,035 per second
How many million operations per second do you need?