设为首页 加入收藏

TOP

MapDB使用入门(三)
2019-09-18 11:14:57 】 浏览:151
Tags:MapDB 使用 入门
---get---数据量:"+dataNum+"------"); for(String mapType : testMap.keySet()) { putGetMapTest(mapType, testMap.get(mapType), dataMap, false); } for(DB db : dbList) { db.close(); } } /** * putGet测试 * @param map * @param dataMap * @param put * @return <耗时, 异常数> */ public static TwoTuple<Long, Long> putGetMapTest(String mapType, Map<String, Long> map, Map<String, Long> dataMap, boolean put) { long useTime = 0L; long errorNum = 0L; Iterator<Entry<String, Long>> entryIt = dataMap.entrySet().iterator(); while(entryIt.hasNext()) { Entry<String, Long> entry = entryIt.next(); if(put) { long t1 = System.nanoTime(); map.put(entry.getKey(), entry.getValue()); useTime = System.nanoTime() - t1; } else { long t1 = System.nanoTime(); long val = map.get(entry.getKey()); useTime = System.nanoTime() - t1; if(val != entry.getValue()) { errorNum++; } } } double avgUseTime = (double)useTime / dataMap.size(); String fmtStr = "map类型:%s,总耗时:%dns,平均耗时%ens,异常数量:%d"; System.out.println(String.format(fmtStr, mapType, useTime, avgUseTime, errorNum)); return new TwoTuple<Long, Long>(useTime, errorNum); } /** * 生成测试数据 * @param size * @return */ public static Map<String, Long> generateTestData(int size) { Map<String, Long> map = new HashMap(); int arrLength = 26; char[] words = new char[arrLength]; for(int i=0; i<arrLength; i++) { words[i] = (char) ('a' + i); } System.out.println(words); String demoWord = new String(words); for(int i=0; i<size; i++) { String key = demoWord.substring(i%arrLength, i%arrLength) + i; long val = i; map.put(key, val); } return map; } /** * 对外内存map */ public static void offHeapMapTest1() { DB db = DBMaker.memoryDB().make(); ConcurrentMap map = db.hashMap("map").createOrOpen(); map.put(DEMO_KEY, DEMO_VAL); System.out.println("第1次取值," + map.get(DEMO_KEY)); } /** * 基于磁盘的存储 */ public static void fileMapTest1() { DB db = DBMaker.fileDB("file.db").make(); ConcurrentMap map = db.hashMap("map").createOrOpen(); map.put(DEMO_KEY, DEMO_VAL); System.out.println("第1次取值," +map.get(DEMO_KEY)); db.close(); System.out.println("----------重新打开----------"); db = DBMaker.fileDB("file.db").make(); map = db.hashMap("map").createOrOpen(); System.out.println("第2次取值," +map.get(DEMO_KEY)); db.close(); } /** * 在64位操作系统中,开启内存映射 * 个性化序列化 */ public static void fileMapMemoryMapTest() { DB db = DBMaker .fileDB("file.db") .fileMmapEnable() .make(); ConcurrentMap<String,Long> map = db .hashMap("mapsl", Serializer.STRING, Serializer.LONG) .createOrOpen(); long val = 51; map.put(DEMO_KEY, val); System.out.println("第1次取值,期望值:" + val + ",取到的值:" +map.get(DEMO_KEY)); db.close(); db = DBMaker .fileDB("file.db") .fileMmapEnable() .make(); map = db.hashMap("mapsl", Serializer.STRING, Serializer.LONG) .createOrOpen(); System.out.println("第2次取值,期望值:" + val + ",取到的值:" +map.get(DEMO_KEY)); db.close(); } }

 

 

2

首页 上一页 1 2 3 4 下一页 尾页 3/4/4
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇MySQL · 引擎特性 · Buffer Poo.. 下一篇大数据技术原理与运用知识

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目