This commit is contained in:
Shantanu Kumar 2015-06-06 14:46:32 +00:00
commit afb1cc4508
2 changed files with 72 additions and 0 deletions

View file

@ -31,6 +31,8 @@
;; [com.cemerick/double-check "0.6.1"]
[org.clojure/data.fressian "0.2.0"]
[org.xerial.snappy/snappy-java "1.1.1.7"]]}
:perf {:dependencies [[citius "0.1.1"]]
:test-paths ^:replace ["test-perf"]}
:dev [:1.7 :test
{:plugins
[[lein-pprint "1.1.1"]

View file

@ -0,0 +1,70 @@
(ns taoensso.nippy.test-perf
(:require
[clojure.test :refer [deftest is testing use-fixtures]]
[citius.core :as c]
[clojure.tools.reader.edn :as edn]
[clojure.data.fressian :as fressian]
[taoensso.nippy :as nippy]))
(def data nippy/stress-data-benchable)
(defn fressian-freeze [value]
(let [^java.nio.ByteBuffer bb (fressian/write value)
len (.remaining bb)
ba (byte-array len)]
(.get bb ba 0 len)
ba))
(defn fressian-thaw [value]
(let [bb (java.nio.ByteBuffer/wrap value)]
(fressian/read bb)))
(use-fixtures :once (c/make-bench-wrapper
["tools.reader.edn" "data.fressian" "Nippy-default" "Nippy-fast" "Nippy-encrypted" "Nippy-lzma2"]
{:chart-title "Nippy"
:chart-filename (format "bench-clj-%s.png" c/clojure-version-str)}))
(deftest test-roundtrip
(c/compare-perf "Roundtrip"
(edn/read-string (pr-str data))
(fressian-thaw (fressian-freeze data))
(nippy/thaw (nippy/freeze data))
(nippy/thaw (nippy/freeze data {:compressor nil
:skip-header? true}) {:compressor nil
:encryptor nil})
(nippy/thaw (nippy/freeze data {:password [:cached "p"]}) {:password [:cached "p"]})
(nippy/thaw (nippy/freeze data {:compressor nippy/lzma2-compressor}) {:compressor nippy/lzma2-compressor})))
(deftest test-freeze
(c/compare-perf "Freeze"
(pr-str data)
(fressian-freeze data)
(nippy/freeze data)
(nippy/freeze data {:compressor nil
:skip-header? true})
(nippy/freeze data {:password [:cached "p"]})
(nippy/freeze data {:compressor nippy/lzma2-compressor})))
(deftest test-thaw
(let [edn-frozen (pr-str data)
fressian-frozen (fressian-freeze data)
nippy-frozen (nippy/freeze data)
nippy-frozen-fast (nippy/freeze data {:compressor nil
:skip-header? true})
nippy-frozen-encr (nippy/freeze data {:password [:cached "p"]})
nippy-frozen-lzma2 (nippy/freeze data {:compressor nippy/lzma2-compressor})]
(c/compare-perf "Thaw"
(edn/read-string edn-frozen)
(fressian-thaw fressian-frozen)
(nippy/thaw nippy-frozen)
(nippy/thaw nippy-frozen-fast {:compressor nil
:encryptor nil})
(nippy/thaw nippy-frozen-encr {:password [:cached "p"]})
(nippy/thaw nippy-frozen-lzma2 {:compressor nippy/lzma2-compressor}))))