Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /******************************************************
- * Use different arLen and arOb1..arOb4 functions to see
- * how per-element memory overhead changes
- ******************************************************/
- var seed = 1, m = 2147483648
- function lcr()
- {
- seed = (seed * 1103515245 + 12345) % m
- return seed / m
- }
- var rand = lcr // can be Math.random()
- function rc()
- {
- return String.fromCharCode(Math.floor(97 + rand() * 26))
- }
- function key()
- {
- var s = ""
- for (var i = 0; i < 6; i++)
- {
- s += rc()
- }
- return s
- }
- function float()
- {
- return Math.round((Math.random() * 2 + 4) * 1000) / 1000
- }
- function ob_uniq()
- {
- var a = {}
- for (var i = 0; i < 10; i++)
- {
- a[key()] = float()
- }
- return a
- }
- var sameProp = ob_uniq()
- function ob_same()
- {
- seed = 123
- return ob_uniq()
- }
- var arLen
- function arOb1()
- {
- var a = new Array(arLen)
- for (var i = 0; i < a.length; i++)
- {
- a[i] = ob_uniq()
- }
- return a
- }
- function arOb2()
- {
- var a = new Array(arLen)
- for (var i = 0; i < a.length; i++)
- {
- a[i] = ob_same()
- }
- return a
- }
- function arOb3()
- {
- var o = ob_same()
- var a = new Array(arLen)
- for (var i = 0; i < a.length; i++)
- {
- var oo = {}
- for (var p in o)
- {
- oo[p] = float()
- }
- a[i] = oo
- }
- return a
- }
- function arOb4()
- {
- var o = ob_same()
- var a = {}
- for (var p in o)
- {
- a[p] = new Array(arLen)
- }
- for (var i = 0; i < arLen; i++)
- {
- for (var p in o)
- {
- a[p][i] = float()
- }
- }
- return a
- }
- function getAt(a, idx)
- {
- if (a instanceof Array)
- {
- return a[idx]
- }
- var element = {}
- for (var p in a)
- {
- element[p] = a[p][idx]
- }
- return element
- }
- function usage()
- {
- return process.memoryUsage().heapUsed
- }
- var u0 = usage()
- setInterval(function () { console.log(((usage() - u0) / arLen).toFixed(0)) }, 2000)
- arLen = 100000
- var a = arOb4()
- console.log(getAt(a, 2345))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement