Created
May 10, 2015 01:36
-
-
Save selfsame/1811ce46247e8fd9adc0 to your computer and use it in GitHub Desktop.
cljs iterater benching
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| (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