From 9c33f4f5aca2a87e31d78dbb829f593bb45189c5 Mon Sep 17 00:00:00 2001 From: Peter Taoussanis Date: Sat, 26 Sep 2015 11:56:40 +0700 Subject: [PATCH] Update benchmarks --- benchmarks.png | Bin 18458 -> 17199 bytes src/taoensso/nippy/benchmarks.clj | 11 ++++++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/benchmarks.png b/benchmarks.png index 9b4fc5d152ac7292ae44b1a3043dd7bae7173c23..9cd79829fb718923df996fd05742fc756401e9fa 100644 GIT binary patch literal 17199 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 diff --git a/src/taoensso/nippy/benchmarks.clj b/src/taoensso/nippy/benchmarks.clj index f1a4351..a379e4a 100644 --- a/src/taoensso/nippy/benchmarks.clj +++ b/src/taoensso/nippy/benchmarks.clj @@ -62,9 +62,18 @@ (bench1 fressian-freeze fressian-thaw)) (comment + (set! *unchecked-math* false) ;; (bench {:reader? true :lzma2? true :fressian? true :laps 3}) ;; (bench {:laps 4}) - ;; (bench {:laps 1}) + ;; (bench {:laps 1 :lzma2? true}) + + ;;; 2015 Sep 29, various micro optimizations (incl. &arg elimination) + {:reader {:round 63547, :freeze 19374, :thaw 44173, :size 27717}} + {:lzma2 {:round 51724, :freeze 33502, :thaw 18222, :size 11248}} + {:fressian {:round 8813, :freeze 6460, :thaw 2353, :size 16985}} + {:encrypted {:round 6005, :freeze 3768, :thaw 2237, :size 16164}} + {:default {:round 5417, :freeze 3354, :thaw 2063, :size 16145}} + {:fast {:round 4659, :freeze 2712, :thaw 1947, :size 17026}} ;;; 2015 Sep 15 - v2.10.0-alpha6, Clojure 1.7.0 {:reader {:round 94901, :freeze 25781, :thaw 69120, :size 27686}}