From 6707ae33c9a21150d14def32bae3b3708ca064de Mon Sep 17 00:00:00 2001 From: Nathan Marz Date: Wed, 15 Jun 2016 10:31:59 -0400 Subject: [PATCH] benchmark updates --- scripts/benchmarks.clj | 50 +++++++++++++++++------------------------- 1 file changed, 20 insertions(+), 30 deletions(-) diff --git a/scripts/benchmarks.clj b/scripts/benchmarks.clj index e8480e0..8db376a 100644 --- a/scripts/benchmarks.clj +++ b/scripts/benchmarks.clj @@ -84,6 +84,26 @@ (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]] (run-benchmark "map a function over a vector" 1000000 (vec (map inc data)) @@ -112,36 +132,6 @@ (reduce 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)