use of io.nuls.cache.LimitHashMap in project nuls by nuls-io.
the class LimitHashMapTest method test.
@Test
public void test() throws IOException {
LimitHashMap<NulsDigestData, Transaction> map = new LimitHashMap<>(200000);
long use = 0;
List<NulsDigestData> hashList = new ArrayList<>();
for (int i = 0; i < 200000; i++) {
Transaction transaction = new TransferTransaction();
transaction.setTime(System.currentTimeMillis());
transaction.setHash(NulsDigestData.calcDigestData(transaction.serializeForHash()));
hashList.add(transaction.getHash());
long start = System.nanoTime();
map.put(transaction.getHash(), transaction);
use += (System.nanoTime() - start);
}
System.out.println("插入20万条累计用时:" + use + "纳秒");
long start = System.currentTimeMillis();
for (int i = 0; i < 100000; i++) {
map.getQueue().size();
}
System.out.println("queue size 100000次用时:" + (System.currentTimeMillis() - start) + "ms");
start = System.currentTimeMillis();
for (int i = 0; i < 100000; i++) {
map.getMap().size();
}
System.out.println("map size 100000次用时:" + (System.currentTimeMillis() - start) + "ms");
start = System.currentTimeMillis();
for (NulsDigestData key : hashList) {
map.get(key);
}
System.out.println("查询200000次用时:" + (System.currentTimeMillis() - start) + "ms");
start = System.currentTimeMillis();
for (NulsDigestData key : hashList) {
map.containsKey(key);
}
System.out.println("判断是否包含200000次用时:" + (System.currentTimeMillis() - start) + "ms");
start = System.currentTimeMillis();
for (NulsDigestData key : hashList) {
map.remove(key);
}
System.out.println("删除200000次用时:" + (System.currentTimeMillis() - start) + "ms");
assertTrue(true);
}
Aggregations