Skip to content

Instantly share code, notes, and snippets.

@selfsame
Created May 10, 2015 01:36
Show Gist options
  • Select an option

  • Save selfsame/1811ce46247e8fd9adc0 to your computer and use it in GitHub Desktop.

Select an option

Save selfsame/1811ce46247e8fd9adc0 to your computer and use it in GitHub Desktop.
cljs iterater benching
(defn stuff [e] true)
(do (def tv (vec (range 2000000))) nil)
(do (def ta (to-array (vec (range 2000000)))) nil)
(defn vrange [n]
(mapv (fn [e] (+ 1 1) true) (range n)))
(defn vrange2 [col]
(.every col stuff))
(defn fast-iterate [col c]
(loop [i 0]
(when (< i c)
(stuff (get col i))
(recur (inc i)))))
(do (def tt (vec (range 2000000))) nil)
(do (prn "mapv") (time (def v (vrange 2000000))) nil)
(do (prn ".every Array") (time (def v (vrange2 ta))) nil)
(do (prn "loop (get vec i)") (time (def v (fast-iterate tt 2000000))) nil)
(do (prn "loop (get Array i)") (time (fast-iterate at 2000000)) nil)
"mapv"
"Elapsed time: 436 msecs"
".every Array"
"Elapsed time: 38 msecs"
"loop (get vec i)"
"Elapsed time: 383 msecs"
"loop (get Array i)"
"Elapsed time: 49 msecs"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment