From 5c96a45bad17f297a7f8e02e23b77ece1844f493 Mon Sep 17 00:00:00 2001
From: Thomas van der Veen
Date: Thu, 15 Oct 2020 14:09:48 +0200
Subject: [PATCH] First pass of performance test.
---
.../clojurewerkz/triennium/perf_test_1.clj | 17 +++++++++++++++++
project.clj | 10 ++++++++--
2 files changed, 25 insertions(+), 2 deletions(-)
create mode 100644 perf-test/clojurewerkz/triennium/perf_test_1.clj
diff --git a/perf-test/clojurewerkz/triennium/perf_test_1.clj b/perf-test/clojurewerkz/triennium/perf_test_1.clj
new file mode 100644
index 0000000..3d72846
--- /dev/null
+++ b/perf-test/clojurewerkz/triennium/perf_test_1.clj
@@ -0,0 +1,17 @@
+(require '[clojurewerkz.triennium.mqtt :as tr])
+(require '[criterium.core :as cc])
+
+(def trie
+ (-> (tr/make-trie)
+ (tr/insert "a/+/1" :a+1)
+ (tr/insert "a/+/2" :a+2)
+ ;(tr/insert "a/+/#" :a+#)
+ (tr/insert "a/b/1" :ab1)))
+
+(cc/quick-bench
+ (dotimes [_ 1000]
+ (tr/matching-vals trie "a/x/1")))
+
+(cc/quick-bench
+ (dotimes [_ 1000]
+ (tr/matching-vals trie "a/thisisatest/more/data")))
diff --git a/project.clj b/project.clj
index 8118412..27f86ce 100644
--- a/project.clj
+++ b/project.clj
@@ -10,8 +10,14 @@
:plugins [[codox "0.8.10"]]
:codox {:sources ["src/clojure"]
:output-dir "doc/api"}
- :dependencies [[reiddraper/simple-check "0.5.6"]]}}
- :aliases {"all" ["with-profile" "dev:dev,1.5:dev,1.7:dev,master"]}
+ :dependencies [[org.clojure/test.check "1.1.0"]
+ [criterium "0.4.6"]]}
+ :perf {:jvm-opts ^:replace ["-server"]
+ "-Xmx4096m"
+ "-Dclojure.compiler.direct-linking=true"
+ :test-paths ["perf-test/clj"]}}
+ :aliases {"all" ["with-profile" "dev:dev,1.8:dev,1.9:dev,master"]
+ "perf" ["with-profile" "default,dev,perf"]}
:repositories {"sonatype" {:url "http://oss.sonatype.org/content/repositories/releases"
:snapshots false
:releases {:checksum :fail}}