Search in sources :

Example 1 with LimitHashMap

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);
}
Also used : Transaction(io.nuls.kernel.model.Transaction) TransferTransaction(io.nuls.protocol.model.tx.TransferTransaction) LimitHashMap(io.nuls.cache.LimitHashMap) ArrayList(java.util.ArrayList) NulsDigestData(io.nuls.kernel.model.NulsDigestData) TransferTransaction(io.nuls.protocol.model.tx.TransferTransaction) Test(org.junit.Test)

Aggregations

LimitHashMap (io.nuls.cache.LimitHashMap)1 NulsDigestData (io.nuls.kernel.model.NulsDigestData)1 Transaction (io.nuls.kernel.model.Transaction)1 TransferTransaction (io.nuls.protocol.model.tx.TransferTransaction)1 ArrayList (java.util.ArrayList)1 Test (org.junit.Test)1