Skip to content

Instantly share code, notes, and snippets.

@peter-leonov
Created April 4, 2020 19:03
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save peter-leonov/c1672f3b9406b27f8297e2c73b75ed71 to your computer and use it in GitHub Desktop.
Save peter-leonov/c1672f3b9406b27f8297e2c73b75ed71 to your computer and use it in GitHub Desktop.
const { openSync, readSync } = require('fs')
const DEV_RANDOM = openSync('/dev/random')
function getVeryRandomString(length) {
const buf = Buffer.alloc(length)
readSync(DEV_RANDOM, buf, 0, length)
return buf.toString()
}
const randInt = (from, to) => Math.ceil(from + Math.random() * to)
const urls = []
for (let i = 0; i < 100_000; i++) {
urls.push('https://' + getVeryRandomString(randInt(15, 250)), i)
}
const queris = []
for (let i = 0; i < 10_000; i++) {
queris.push(urls[randInt(0, urls.length)])
}
let map = new Map(urls.map((url, i) => [url, i]))
console.log(map.size)
let sum = 0
for (let run = 0; run < 10; run++) {
console.time('run ' + run)
for (let i = 0; i < queris.length; i++) {
sum += map.get(queris[i])
}
console.timeEnd('run ' + run)
}
console.log('sum = ', sum)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment