From 930724b85b963000769087df44665de71cd13333 Mon Sep 17 00:00:00 2001 From: Nathan Marz Date: Thu, 23 Jun 2016 12:30:50 -0400 Subject: [PATCH] add benchmark for multi-transform --- scripts/benchmarks.clj | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/scripts/benchmarks.clj b/scripts/benchmarks.clj index e4d3be6..8e52b59 100644 --- a/scripts/benchmarks.clj +++ b/scripts/benchmarks.clj @@ -285,3 +285,16 @@ (reduce conj #{} (traverse ALL data)) )) +(defn mult-10 [v] (* 10 v)) + +(let [data [1 2 3 4 5 6 7 8 9]] + (run-benchmark "multi-transform vs. consecutive transforms, one shared nav" 300000 + (->> data (transform [ALL even?] mult-10) (transform [ALL odd?] dec)) + (multi-transform [ALL (multi-path [even? (terminal mult-10)] [odd? (terminal dec)])] data) + )) + +(let [data [[1 2 3 4 :a] [5] [6 7 :b 8 9] [10 11 12 13]]] + (run-benchmark "multi-transform vs. consecutive transforms, three shared navs" 150000 + (->> data (transform [ALL ALL number? even?] mult-10) (transform [ALL ALL number? odd?] dec)) + (multi-transform [ALL ALL number? (multi-path [even? (terminal mult-10)] [odd? (terminal dec)])] data) + ))