增加哈希表的速度以获取数据量大的数据

时间:2018-04-21 03:08:57

标签: c++ algorithm performance hashmap

我正在创建一个哈希表来排序旧的堆栈溢出问题,YAY!所以我存储一个单词作为键,也许是C ++,然后是与单词和帖子相关的ID号。我的工作正常“小”堆栈溢出文件,我能够添加大约400,000个问题的话,但总数约为125万。我需要将数据存储到一个哈希表中,但是在大约400,000个标记处,插入表的过程变得无用。有关如何修改表格或重组方法的任何想法。我简单地考虑创建三个400,000的列表并将它们全部复制到一个,但这看起来很费时,因为在成功运行之后,主要目标是尽可能快地进行人道可能。这是代码任何帮助将不胜感激。警告:代码经历了很多变化,并且有很多注释代码

const MongoClient = require('mongodb').MongoClient
const MongoUrl = 'mongodb://localhost:27017/'
const MongoDBname = 'testDB'
const MongoCollection = 'testCollection'
const moment = require('moment')

const getDB = () =>
  new Promise((resolve,reject)=>{
    MongoClient.connect(MongoUrl,(err,client)=>{
      if(err) return reject(err)
      console.log('successfully connected to db')
      return resolve(client.db(MongoDBname))
      client.close()
    })
  })

;(async ()=>{
  console.log(`iteration begins on ${moment().format('YYYY/MM/DD hh:mm:ss')} ------------`)
  let db = await getDB() //receives mongodb

  //iterate through all db articles...
  const cursor = await db.collection(MongoCollection).find()
  const maxDoc = await cursor.count()
  console.log('Amount of target document:' + maxDoc)
  let count = 0
  //replace this with stream/while/map...any other iteration methods
  cursor.each((err,doc)=>{
    count ++
    console.log(`preloading doc No.${count} async ${(count / maxDoc * 100).toFixed(2)}%`)
  })
})()

0 个答案:

没有答案