benchmark updates
This commit is contained in:
parent
db08499eaf
commit
6707ae33c9
1 changed files with 20 additions and 30 deletions
|
|
@ -84,6 +84,26 @@
|
||||||
(manual-transform data inc)
|
(manual-transform data inc)
|
||||||
))
|
))
|
||||||
|
|
||||||
|
(let [data {:a 1 :b 2 :c 3 :d 4}]
|
||||||
|
(run-benchmark "transform values of a small map" 1000000
|
||||||
|
(into {} (for [[k v] data] [k (inc v)]))
|
||||||
|
(reduce-kv (fn [m k v] (assoc m k (inc v))) {} data)
|
||||||
|
(reduce-kv (fn [m k v] (assoc m k (inc v))) (empty data) data)
|
||||||
|
(transform [ALL LAST] inc data)
|
||||||
|
(transform MAP-VALS inc data)
|
||||||
|
(zipmap (keys data) (map inc (vals data)))
|
||||||
|
))
|
||||||
|
|
||||||
|
(let [data (->> (for [i (range 1000)] [i i]) (into {}))]
|
||||||
|
(run-benchmark "transform values of large map" 1000
|
||||||
|
(into {} (for [[k v] data] [k (inc v)]))
|
||||||
|
(reduce-kv (fn [m k v] (assoc m k (inc v))) {} data)
|
||||||
|
(reduce-kv (fn [m k v] (assoc m k (inc v))) (empty data) data)
|
||||||
|
(transform [ALL LAST] inc data)
|
||||||
|
(transform MAP-VALS inc data)
|
||||||
|
(zipmap (keys data) (map inc (vals data)))
|
||||||
|
))
|
||||||
|
|
||||||
(let [data [1 2 3 4 5]]
|
(let [data [1 2 3 4 5]]
|
||||||
(run-benchmark "map a function over a vector" 1000000
|
(run-benchmark "map a function over a vector" 1000000
|
||||||
(vec (map inc data))
|
(vec (map inc data))
|
||||||
|
|
@ -112,36 +132,6 @@
|
||||||
(reduce conj v [1])
|
(reduce conj v [1])
|
||||||
(conj v 1)))
|
(conj v 1)))
|
||||||
|
|
||||||
(defn- update-pair [[k v]]
|
|
||||||
[k (inc v)])
|
|
||||||
|
|
||||||
(defn manual-similar-reduce-kv [data]
|
|
||||||
(reduce-kv
|
|
||||||
(fn [m k v]
|
|
||||||
(let [[newk newv] (update-pair [k v])]
|
|
||||||
(assoc m newk newv)))
|
|
||||||
{}
|
|
||||||
data
|
|
||||||
))
|
|
||||||
|
|
||||||
(let [data {:a 1 :b 2 :c 3 :d 4}]
|
|
||||||
(run-benchmark "transform values of a map" 1000000
|
|
||||||
(into {} (for [[k v] data] [k (inc v)]))
|
|
||||||
(reduce-kv (fn [m k v] (assoc m k (inc v))) {} data)
|
|
||||||
(manual-similar-reduce-kv data)
|
|
||||||
(transform [ALL LAST] inc data)
|
|
||||||
(transform MAP-VALS inc data)
|
|
||||||
))
|
|
||||||
|
|
||||||
(let [data (->> (for [i (range 1000)] [i i]) (into {}))]
|
|
||||||
(run-benchmark "transform values of large map" 1000
|
|
||||||
(into {} (for [[k v] data] [k (inc v)]))
|
|
||||||
(reduce-kv (fn [m k v] (assoc m k (inc v))) {} data)
|
|
||||||
(manual-similar-reduce-kv data)
|
|
||||||
(transform [ALL LAST] inc data)
|
|
||||||
(transform MAP-VALS inc data)
|
|
||||||
))
|
|
||||||
|
|
||||||
|
|
||||||
(declarepath TreeValues)
|
(declarepath TreeValues)
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue