From 5877dc4df01e879964c55090def7616293dc4389 Mon Sep 17 00:00:00 2001 From: Peter Taoussanis Date: Sun, 16 Jun 2013 13:29:09 +0700 Subject: [PATCH] Update benchmarks (2.0.0-alpha6) --- benchmarks/chart.png | Bin 18627 -> 21207 bytes src/taoensso/nippy/benchmarks.clj | 22 ++++++++++++++-------- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/benchmarks/chart.png b/benchmarks/chart.png index 8fbbff7507c8ddbd4fb4f6d3ffca50f72b0f3abe..32b4d2d2803d6591d4b3a685495492a55656e43a 100644 GIT binary patch literal 21207 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 literal 18627 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 DPYMG! diff --git a/src/taoensso/nippy/benchmarks.clj b/src/taoensso/nippy/benchmarks.clj index 41beb12..dbe72f3 100644 --- a/src/taoensso/nippy/benchmarks.clj +++ b/src/taoensso/nippy/benchmarks.clj @@ -34,36 +34,42 @@ (println {:reader - {:freeze (bench (freeze-reader data)) + {:round (bench (roundtrip-reader data)) + :freeze (bench (freeze-reader data)) :thaw (let [frozen (freeze-reader data)] (bench (thaw-reader frozen))) - :round (bench (roundtrip-reader data)) :data-size (count (.getBytes ^String (freeze-reader data) "UTF-8"))}}) (println {:defaults - {:freeze (bench (freeze data)) + {:round (bench (roundtrip-defaults data)) + :freeze (bench (freeze data)) :thaw (let [frozen (freeze data)] (bench (thaw frozen))) - :round (bench (roundtrip-defaults data)) :data-size (count (freeze data))}}) (println {:encrypted - {:freeze (bench (freeze data {:password [:cached "p"]})) + {:round (bench (roundtrip-encrypted data)) + :freeze (bench (freeze data {:password [:cached "p"]})) :thaw (let [frozen (freeze data {:password [:cached "p"]})] (bench (thaw frozen {:password [:cached "p"]}))) - :round (bench (roundtrip-encrypted data)) :data-size (count (freeze data {:password [:cached "p"]}))}}) (println {:fast - {:freeze (bench (freeze data {:compressor nil})) + {:round (bench (roundtrip-fast data)) + :freeze (bench (freeze data {:compressor nil})) :thaw (let [frozen (freeze data {:compressor nil})] (bench (thaw frozen))) - :round (bench (roundtrip-fast data)) :data-size (count (freeze data {:compressor nil}))}}) (println "Done! (Time for cake?)")) + ;;; 16 June 2013: Clojure 1.5.1, Nippy 2.0.0-alpha6 + ;; {:reader {:freeze 23601, :thaw 26247, :round 49819, :data-size 22966}} + ;; {:defaults {:freeze 3554, :thaw 2002, :round 5831, :data-size 12394}} + ;; {:encrypted {:freeze 5117, :thaw 3600, :round 9006, :data-size 12420}} + ;; {:fast {:freeze 3247, :thaw 1914, :round 5329, :data-size 13342}} + ;;; 13 June 2013: Clojure 1.5.1, Nippy 2.0.0-alpha1 ;; {:reader {:freeze 23124, :thaw 26469, :round 47674, :data-size 22923}} ;; {:defaults {:freeze 4007, :thaw 2520, :round 6038, :data-size 12387}}