-
-
Save sirkitree/d0bb00d1b42e885385ec to your computer and use it in GitHub Desktop.
var points = []; | |
var x = y = z = this.constraint; | |
var constraintDecrement = this.constraint * -1; | |
for (var x = this.constraint; x >= constraintDecrement; x--) { | |
points.push({ | |
'pos': {'x' : x, 'y' : y, 'z' : z} | |
}); | |
for (var y = this.constraint; y > constraintDecrement; y--) { | |
points.push({ | |
'pos': {'x' : x, 'y' : y, 'z' : z} | |
}); | |
for (var z = this.constraint; z > constraintDecrement; z--) { | |
points.push({ | |
'pos': {'x' : x, 'y' : y, 'z' : z} | |
}); | |
}; | |
}; | |
}; |
75 works okay. Using time
i get 12.61s user 2.34s system 65% cpu 22.825 total
100 I get: FATAL ERROR: JS Allocation failed - process out of memory
@ 125.55s user 3.54s system 89% cpu 2:24.77 total
Article here is saying that do/while loops are much faster, especially with the condition at the end so I may try that.
Humm, if my CS education is coming back to me OK, the snippet above runs on the order of O(n^3), 8n^3 to exact, where n is this.contraint
. So for:
this.constraint = 10
==> 8,000 array entries
this.constraint = 100
==> 8,000,000 array entries
That's a lot. Even if you could speed it up, the 8,000,000 entries in the array might be too huge?
JS bin to play with: http://jsbin.com/dogogirohu/2/edit
Yup, it's way too huge, 10 will have to suffice for now, lol.
@justafish created a much faster version here: https://gist.github.com/justafish/096f46baedc2487deafe
If
this.constraint
is equal to 10, it's not problem. But increasing to 100 takes forever. Is there a good way to optimize this?