From 5b928d087370531cd1bd909ce662bb725659564e Mon Sep 17 00:00:00 2001 From: Tommi Reiman Date: Sun, 3 Jun 2018 18:06:22 +0300 Subject: [PATCH] measure ring-handler perf --- perf-test/clj/reitit/bide_perf_test.clj | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/perf-test/clj/reitit/bide_perf_test.clj b/perf-test/clj/reitit/bide_perf_test.clj index 9e3aecf8..be26dcde 100644 --- a/perf-test/clj/reitit/bide_perf_test.clj +++ b/perf-test/clj/reitit/bide_perf_test.clj @@ -10,7 +10,8 @@ [io.pedestal.http.route.definition.table :as table] [io.pedestal.http.route.map-tree :as map-tree] [io.pedestal.http.route.router :as pedestal] - [io.pedestal.http.route :as route])) + [io.pedestal.http.route :as route] + [reitit.ring :as ring])) ;; ;; start repl with `lein perf repl` @@ -62,6 +63,26 @@ ["/auth/recovery/token/:token" :auth/recovery] ["/workspace/:project/:page" :workspace/page]])) +(def ring-app + (ring/ring-handler + (ring/router + [["/auth/login" {:get identity}] + ["/auth/recovery/token/:token" {:get identity}] + ["/workspace/:project/:page" {:get identity}]]))) + +(comment + + (ring-app {:request-method :get, :uri "/auth/login"}) + + ;; 213ns + ;; 204ns (remove if) + ;; 163ns (inline fast-assoc) + ;; 156ns (don't inline fast-assoc) + ;; 128ns (single method dispatch) + ;; 80ns --> (don't inject router & match) + (cc/quick-bench + (ring-app {:request-method :post, :uri "/auth/login"}))) + (defn routing-test1 [] (suite "static route")