mirror of
https://github.com/metosin/reitit.git
synced 2026-02-20 17:29:08 +00:00
don't test compojure-api, it's compojure all over
This commit is contained in:
parent
e0786b73f0
commit
85c4a0a8c0
4 changed files with 98 additions and 185 deletions
|
|
@ -4,9 +4,8 @@
|
||||||
[reitit.perf-utils :refer :all]
|
[reitit.perf-utils :refer :all]
|
||||||
|
|
||||||
[bidi.bidi :as bidi]
|
[bidi.bidi :as bidi]
|
||||||
[compojure.api.sweet :refer [api routes GET]]
|
|
||||||
[compojure.api.routes :as routes]
|
|
||||||
[ataraxy.core :as ataraxy]
|
[ataraxy.core :as ataraxy]
|
||||||
|
[compojure.core :as compojure]
|
||||||
|
|
||||||
[io.pedestal.http.route.definition.table :as table]
|
[io.pedestal.http.route.definition.table :as table]
|
||||||
[io.pedestal.http.route.map-tree :as map-tree]
|
[io.pedestal.http.route.map-tree :as map-tree]
|
||||||
|
|
@ -34,14 +33,11 @@
|
||||||
[["auth/recovery/token/" :token] :auth/recovery]
|
[["auth/recovery/token/" :token] :auth/recovery]
|
||||||
["workspace/" [[[:project "/" :page] :workspace/page]]]]])
|
["workspace/" [[[:project "/" :page] :workspace/page]]]]])
|
||||||
|
|
||||||
(def compojure-api-routes
|
(def compojure-routes
|
||||||
(routes
|
(compojure/routes
|
||||||
(GET "/auth/login" [] {:name :auth/login} (constantly ""))
|
(compojure/GET "/auth/login" [] (constantly ""))
|
||||||
(GET "/auth/recovery/token/:token" [] {:name :auth/recovery} (constantly ""))
|
(compojure/GET "/auth/recovery/token/:token" [] (constantly ""))
|
||||||
(GET "/workspace/:project/:page" [] {:name :workspace/page} (constantly ""))))
|
(compojure/GET "/workspace/:project/:page" [] (constantly ""))))
|
||||||
|
|
||||||
(def compojure-api-request
|
|
||||||
{:compojure.api.request/lookup (routes/route-lookup-table (routes/get-routes (api compojure-api-routes)))})
|
|
||||||
|
|
||||||
(def ataraxy-routes
|
(def ataraxy-routes
|
||||||
(ataraxy/compile
|
(ataraxy/compile
|
||||||
|
|
@ -94,13 +90,13 @@
|
||||||
(dotimes [_ 1000]
|
(dotimes [_ 1000]
|
||||||
(pedestal/find-route pedestal-router {:path-info "/auth/login" :request-method :get}))))
|
(pedestal/find-route pedestal-router {:path-info "/auth/login" :request-method :get}))))
|
||||||
|
|
||||||
;; 1500 µs
|
;; 1400 µs
|
||||||
(title "compojure-api")
|
(title "compojure")
|
||||||
(let [request {:uri "/auth/login", :request-method :get}]
|
(let [request {:uri "/auth/login", :request-method :get}]
|
||||||
(assert (compojure-api-routes request))
|
(assert (compojure-routes request))
|
||||||
(cc/quick-bench
|
(cc/quick-bench
|
||||||
(dotimes [_ 1000]
|
(dotimes [_ 1000]
|
||||||
(compojure-api-routes request))))
|
(compojure-routes request))))
|
||||||
|
|
||||||
;; 3.2 µs (300-500x)
|
;; 3.2 µs (300-500x)
|
||||||
(title "reitit")
|
(title "reitit")
|
||||||
|
|
@ -136,16 +132,17 @@
|
||||||
(dotimes [_ 1000]
|
(dotimes [_ 1000]
|
||||||
(pedestal/find-route pedestal-router request))))
|
(pedestal/find-route pedestal-router request))))
|
||||||
|
|
||||||
;; 3500 µs
|
;; 3400 µs
|
||||||
(title "compojure-api")
|
(title "compojure")
|
||||||
(let [request {:uri "/workspace/1/1", :request-method :get}]
|
(let [request {:uri "/workspace/1/1", :request-method :get}]
|
||||||
(assert (compojure-api-routes request))
|
(assert (compojure-routes request))
|
||||||
(cc/quick-bench
|
(cc/quick-bench
|
||||||
(dotimes [_ 1000]
|
(dotimes [_ 1000]
|
||||||
(compojure-api-routes request))))
|
(compojure-routes request))))
|
||||||
|
|
||||||
;; 710 µs (3-18x)
|
;; 710 µs (3-18x)
|
||||||
;; 530 µs (4-24x) -25% prefix-tree-router
|
;; 530 µs (4-24x) -25% prefix-tree-router
|
||||||
|
;; 710 µs (3-18x) segment-router
|
||||||
(title "reitit")
|
(title "reitit")
|
||||||
(assert (reitit/match-by-path reitit-routes "/workspace/1/1"))
|
(assert (reitit/match-by-path reitit-routes "/workspace/1/1"))
|
||||||
(cc/quick-bench
|
(cc/quick-bench
|
||||||
|
|
@ -174,10 +171,6 @@
|
||||||
|
|
||||||
;; 4.9µs
|
;; 4.9µs
|
||||||
(title "compojure-api")
|
(title "compojure-api")
|
||||||
(let [call #(routes/path-for* :workspace/page compojure-api-request {:project "1", :page "1"})]
|
|
||||||
(assert (= "/workspace/1/1" (call)))
|
|
||||||
(cc/quick-bench
|
|
||||||
(call)))
|
|
||||||
|
|
||||||
;; 850ns (-83%)
|
;; 850ns (-83%)
|
||||||
(title "reitit")
|
(title "reitit")
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,6 @@
|
||||||
|
|
||||||
[ataraxy.core :as ataraxy]
|
[ataraxy.core :as ataraxy]
|
||||||
|
|
||||||
[compojure.api.sweet :refer [api routes context ANY]]
|
|
||||||
[compojure.core :as compojure]
|
[compojure.core :as compojure]
|
||||||
|
|
||||||
[io.pedestal.http.route.definition.table :as table]
|
[io.pedestal.http.route.definition.table :as table]
|
||||||
|
|
@ -342,7 +341,7 @@
|
||||||
(def cqrs-routes-compojure
|
(def cqrs-routes-compojure
|
||||||
(apply routes (map (fn [command] (compojure/ANY (str "/command/" (name command)) [] handler)) commands)))
|
(apply routes (map (fn [command] (compojure/ANY (str "/command/" (name command)) [] handler)) commands)))
|
||||||
|
|
||||||
;; Method code too large
|
;; Method code too large!
|
||||||
#_(def cqrs-routes-ataraxy
|
#_(def cqrs-routes-ataraxy
|
||||||
(ataraxy/compile
|
(ataraxy/compile
|
||||||
(into {} (mapv (fn [command] [(str "/command/" (name command)) [command]]) commands))))
|
(into {} (mapv (fn [command] [(str "/command/" (name command)) [command]]) commands))))
|
||||||
|
|
|
||||||
|
|
@ -11,8 +11,7 @@
|
||||||
|
|
||||||
[ataraxy.core :as ataraxy]
|
[ataraxy.core :as ataraxy]
|
||||||
|
|
||||||
[compojure.api.sweet :refer [api routes context ANY]]
|
[compojure.core :refer [routes context ANY]]
|
||||||
[compojure.core :as compojure]
|
|
||||||
|
|
||||||
[io.pedestal.http.route.definition.table :as table]
|
[io.pedestal.http.route.definition.table :as table]
|
||||||
[io.pedestal.http.route.map-tree :as map-tree]
|
[io.pedestal.http.route.map-tree :as map-tree]
|
||||||
|
|
@ -230,157 +229,86 @@
|
||||||
["topics/" topic] [:test/route47 topic]
|
["topics/" topic] [:test/route47 topic]
|
||||||
"topics" [:test/route50]}}))
|
"topics" [:test/route50]}}))
|
||||||
|
|
||||||
(def opensensors-compojure-routes
|
(comment
|
||||||
(compojure/routes
|
(declare routes)
|
||||||
(compojure/context "/v1" []
|
(declare context)
|
||||||
(compojure/context "/public" []
|
(declare ANY))
|
||||||
(compojure/ANY "/topics/:topic" [] {:name :test/route4} handler)
|
|
||||||
(compojure/ANY "/users/:user-id" [] {:name :test/route16} handler)
|
|
||||||
(compojure/ANY "/orgs/:org-id" [] {:name :test/route18} handler))
|
|
||||||
(compojure/context "/users/:user-id" []
|
|
||||||
(compojure/ANY "/orgs/:org-id" [] {:name :test/route5} handler)
|
|
||||||
(compojure/ANY "/invitations" [] {:name :test/route7} handler)
|
|
||||||
(compojure/ANY "/topics" [] {:name :test/route9} handler)
|
|
||||||
(compojure/ANY "/bookmarks/followers" [] {:name :test/route10} handler)
|
|
||||||
(compojure/context "/devices" []
|
|
||||||
(compojure/ANY "/" [] {:name :test/route15} handler)
|
|
||||||
#_(compojure/ANY "/bulk" [] {:name :test/route21} handler)
|
|
||||||
(compojure/ANY "/:client-id" [] {:name :test/route35} handler)
|
|
||||||
(compojure/ANY "/:client-id/reset-password" [] {:name :test/route49} handler))
|
|
||||||
(compojure/ANY "/device-errors" [] {:name :test/route22} handler)
|
|
||||||
(compojure/ANY "/usage-stats" [] {:name :test/route24} handler)
|
|
||||||
(compojure/ANY "/claim-device/:client-id" [] {:name :test/route26} handler)
|
|
||||||
(compojure/ANY "/owned-orgs" [] {:name :test/route31} handler)
|
|
||||||
(compojure/ANY "/bookmark/:topic" [] {:name :test/route33} handler)
|
|
||||||
(compojure/ANY "/" [] {:name :test/route36} handler)
|
|
||||||
(compojure/ANY "/orgs" [] {:name :test/route52} handler)
|
|
||||||
(compojure/ANY "/api-key" [] {:name :test/route43} handler)
|
|
||||||
(compojure/ANY "/bookmarks" [] {:name :test/route56} handler))
|
|
||||||
(compojure/ANY "/search/topics/:term" [] {:name :test/route6} handler)
|
|
||||||
(compojure/context "/orgs" []
|
|
||||||
(compojure/ANY "/" [] {:name :test/route55} handler)
|
|
||||||
(compojure/context "/:org-id" []
|
|
||||||
(compojure/context "/devices" []
|
|
||||||
(compojure/ANY "/" [] {:name :test/route37} handler)
|
|
||||||
(compojure/ANY "/:device-id" [] {:name :test/route13} handler)
|
|
||||||
#_(compojure/ANY "/:batch/:type" [] {:name :test/route8} handler))
|
|
||||||
(compojure/ANY "/usage-stats" [] {:name :test/route12} handler)
|
|
||||||
(compojure/ANY "/invitations" [] {:name :test/route19} handler)
|
|
||||||
(compojure/context "/members" []
|
|
||||||
(compojure/ANY "/:user-id" [] {:name :test/route34} handler)
|
|
||||||
(compojure/ANY "/" [] {:name :test/route38} handler)
|
|
||||||
#_(compojure/ANY "/invitation-data/:user-id" [] {:name :test/route39} handler))
|
|
||||||
(compojure/ANY "/errors" [] {:name :test/route17} handler)
|
|
||||||
(compojure/ANY "/" [] {:name :test/route42} handler)
|
|
||||||
(compojure/ANY "/confirm-membership/:token" [] {:name :test/route46} handler)
|
|
||||||
(compojure/ANY "/topics" [] {:name :test/route57} handler)))
|
|
||||||
(compojure/context "/messages" []
|
|
||||||
(compojure/ANY "/user/:user-id" [] {:name :test/route14} handler)
|
|
||||||
(compojure/ANY "/device/:client-id" [] {:name :test/route30} handler)
|
|
||||||
(compojure/ANY "/topic/:topic" [] {:name :test/route48} handler))
|
|
||||||
(compojure/context "/topics" []
|
|
||||||
(compojure/ANY "/:topic" [] {:name :test/route32} handler)
|
|
||||||
(compojure/ANY "/" [] {:name :test/route54} handler))
|
|
||||||
(compojure/ANY "/whoami" [] {:name :test/route41} handler)
|
|
||||||
(compojure/ANY "/login" [] {:name :test/route51} handler))
|
|
||||||
(compojure/context "/v2" []
|
|
||||||
(compojure/ANY "/whoami" [] {:name :test/route1} handler)
|
|
||||||
(compojure/context "/users/:user-id" []
|
|
||||||
(compojure/ANY "/datasets" [] {:name :test/route2} handler)
|
|
||||||
(compojure/ANY "/devices" [] {:name :test/route25} handler)
|
|
||||||
(compojure/context "/topics" []
|
|
||||||
(compojure/ANY "/bulk" [] {:name :test/route29} handler)
|
|
||||||
(compojure/ANY "/" [] {:name :test/route54} handler))
|
|
||||||
(compojure/ANY "/" [] {:name :test/route45} handler))
|
|
||||||
(compojure/context "/public" []
|
|
||||||
(compojure/context "/projects/:project-id" []
|
|
||||||
(compojure/ANY "/datasets" [] {:name :test/route3} handler)
|
|
||||||
(compojure/ANY "/" [] {:name :test/route27} handler))
|
|
||||||
#_(compojure/ANY "/messages/dataset/bulk" [] {:name :test/route20} handler)
|
|
||||||
(compojure/ANY "/datasets/:dataset-id" [] {:name :test/route28} handler)
|
|
||||||
(compojure/ANY "/messages/dataset/:dataset-id" [] {:name :test/route53} handler))
|
|
||||||
(compojure/ANY "/datasets/:dataset-id" [] {:name :test/route11} handler)
|
|
||||||
(compojure/ANY "/login" [] {:name :test/route23} handler)
|
|
||||||
(compojure/ANY "/orgs/:org-id/topics" [] {:name :test/route40} handler)
|
|
||||||
(compojure/ANY "/schemas" [] {:name :test/route44} handler)
|
|
||||||
(compojure/ANY "/topics/:topic" [] {:name :test/route47} handler)
|
|
||||||
(compojure/ANY "/topics" [] {:name :test/route50} handler))))
|
|
||||||
|
|
||||||
(def opensensors-compojure-api-routes
|
(def opensensors-compojure-routes
|
||||||
(routes
|
(routes
|
||||||
(context "/v1" []
|
(context "/v1" []
|
||||||
(context "/public" []
|
(context "/public" []
|
||||||
(ANY "/topics/:topic" [] {:name :test/route4} handler)
|
(ANY "/topics/:topic" [] {:name :test/route4} handler)
|
||||||
(ANY "/users/:user-id" [] {:name :test/route16} handler)
|
(ANY "/users/:user-id" [] {:name :test/route16} handler)
|
||||||
(ANY "/orgs/:org-id" [] {:name :test/route18} handler))
|
(ANY "/orgs/:org-id" [] {:name :test/route18} handler))
|
||||||
(context "/users/:user-id" []
|
(context "/users/:user-id" []
|
||||||
(ANY "/orgs/:org-id" [] {:name :test/route5} handler)
|
(ANY "/orgs/:org-id" [] {:name :test/route5} handler)
|
||||||
(ANY "/invitations" [] {:name :test/route7} handler)
|
(ANY "/invitations" [] {:name :test/route7} handler)
|
||||||
(ANY "/topics" [] {:name :test/route9} handler)
|
(ANY "/topics" [] {:name :test/route9} handler)
|
||||||
(ANY "/bookmarks/followers" [] {:name :test/route10} handler)
|
(ANY "/bookmarks/followers" [] {:name :test/route10} handler)
|
||||||
(context "/devices" []
|
(context "/devices" []
|
||||||
(ANY "/" [] {:name :test/route15} handler)
|
(ANY "/" [] {:name :test/route15} handler)
|
||||||
#_(ANY "/bulk" [] {:name :test/route21} handler)
|
#_(ANY "/bulk" [] {:name :test/route21} handler)
|
||||||
(ANY "/:client-id" [] {:name :test/route35} handler)
|
(ANY "/:client-id" [] {:name :test/route35} handler)
|
||||||
(ANY "/:client-id/reset-password" [] {:name :test/route49} handler))
|
(ANY "/:client-id/reset-password" [] {:name :test/route49} handler))
|
||||||
(ANY "/device-errors" [] {:name :test/route22} handler)
|
(ANY "/device-errors" [] {:name :test/route22} handler)
|
||||||
(ANY "/usage-stats" [] {:name :test/route24} handler)
|
(ANY "/usage-stats" [] {:name :test/route24} handler)
|
||||||
(ANY "/claim-device/:client-id" [] {:name :test/route26} handler)
|
(ANY "/claim-device/:client-id" [] {:name :test/route26} handler)
|
||||||
(ANY "/owned-orgs" [] {:name :test/route31} handler)
|
(ANY "/owned-orgs" [] {:name :test/route31} handler)
|
||||||
(ANY "/bookmark/:topic" [] {:name :test/route33} handler)
|
(ANY "/bookmark/:topic" [] {:name :test/route33} handler)
|
||||||
(ANY "/" [] {:name :test/route36} handler)
|
(ANY "/" [] {:name :test/route36} handler)
|
||||||
(ANY "/orgs" [] {:name :test/route52} handler)
|
(ANY "/orgs" [] {:name :test/route52} handler)
|
||||||
(ANY "/api-key" [] {:name :test/route43} handler)
|
(ANY "/api-key" [] {:name :test/route43} handler)
|
||||||
(ANY "/bookmarks" [] {:name :test/route56} handler))
|
(ANY "/bookmarks" [] {:name :test/route56} handler))
|
||||||
(ANY "/search/topics/:term" [] {:name :test/route6} handler)
|
(ANY "/search/topics/:term" [] {:name :test/route6} handler)
|
||||||
(context "/orgs" []
|
(context "/orgs" []
|
||||||
(ANY "/" [] {:name :test/route55} handler)
|
(ANY "/" [] {:name :test/route55} handler)
|
||||||
(context "/:org-id" []
|
(context "/:org-id" []
|
||||||
(context "/devices" []
|
(context "/devices" []
|
||||||
(ANY "/" [] {:name :test/route37} handler)
|
(ANY "/" [] {:name :test/route37} handler)
|
||||||
(ANY "/:device-id" [] {:name :test/route13} handler)
|
(ANY "/:device-id" [] {:name :test/route13} handler)
|
||||||
#_(ANY "/:batch/:type" [] {:name :test/route8} handler))
|
#_(ANY "/:batch/:type" [] {:name :test/route8} handler))
|
||||||
(ANY "/usage-stats" [] {:name :test/route12} handler)
|
(ANY "/usage-stats" [] {:name :test/route12} handler)
|
||||||
(ANY "/invitations" [] {:name :test/route19} handler)
|
(ANY "/invitations" [] {:name :test/route19} handler)
|
||||||
(context "/members" []
|
(context "/members" []
|
||||||
(ANY "/:user-id" [] {:name :test/route34} handler)
|
(ANY "/:user-id" [] {:name :test/route34} handler)
|
||||||
(ANY "/" [] {:name :test/route38} handler)
|
(ANY "/" [] {:name :test/route38} handler)
|
||||||
#_(ANY "/invitation-data/:user-id" [] {:name :test/route39} handler))
|
#_(ANY "/invitation-data/:user-id" [] {:name :test/route39} handler))
|
||||||
(ANY "/errors" [] {:name :test/route17} handler)
|
(ANY "/errors" [] {:name :test/route17} handler)
|
||||||
(ANY "/" [] {:name :test/route42} handler)
|
(ANY "/" [] {:name :test/route42} handler)
|
||||||
(ANY "/confirm-membership/:token" [] {:name :test/route46} handler)
|
(ANY "/confirm-membership/:token" [] {:name :test/route46} handler)
|
||||||
(ANY "/topics" [] {:name :test/route57} handler)))
|
(ANY "/topics" [] {:name :test/route57} handler)))
|
||||||
(context "/messages" []
|
(context "/messages" []
|
||||||
(ANY "/user/:user-id" [] {:name :test/route14} handler)
|
(ANY "/user/:user-id" [] {:name :test/route14} handler)
|
||||||
(ANY "/device/:client-id" [] {:name :test/route30} handler)
|
(ANY "/device/:client-id" [] {:name :test/route30} handler)
|
||||||
(ANY "/topic/:topic" [] {:name :test/route48} handler))
|
(ANY "/topic/:topic" [] {:name :test/route48} handler))
|
||||||
(context "/topics" []
|
(context "/topics" []
|
||||||
(ANY "/:topic" [] {:name :test/route32} handler)
|
(ANY "/:topic" [] {:name :test/route32} handler)
|
||||||
(ANY "/" [] {:name :test/route54} handler))
|
(ANY "/" [] {:name :test/route54} handler))
|
||||||
(ANY "/whoami" [] {:name :test/route41} handler)
|
(ANY "/whoami" [] {:name :test/route41} handler)
|
||||||
(ANY "/login" [] {:name :test/route51} handler))
|
(ANY "/login" [] {:name :test/route51} handler))
|
||||||
(context "/v2" []
|
(context "/v2" []
|
||||||
(ANY "/whoami" [] {:name :test/route1} handler)
|
(ANY "/whoami" [] {:name :test/route1} handler)
|
||||||
(context "/users/:user-id" []
|
(context "/users/:user-id" []
|
||||||
(ANY "/datasets" [] {:name :test/route2} handler)
|
(ANY "/datasets" [] {:name :test/route2} handler)
|
||||||
(ANY "/devices" [] {:name :test/route25} handler)
|
(ANY "/devices" [] {:name :test/route25} handler)
|
||||||
(context "/topics" []
|
(context "/topics" []
|
||||||
(ANY "/bulk" [] {:name :test/route29} handler)
|
(ANY "/bulk" [] {:name :test/route29} handler)
|
||||||
(ANY "/" [] {:name :test/route54} handler))
|
(ANY "/" [] {:name :test/route54} handler))
|
||||||
(ANY "/" [] {:name :test/route45} handler))
|
(ANY "/" [] {:name :test/route45} handler))
|
||||||
(context "/public" []
|
(context "/public" []
|
||||||
(context "/projects/:project-id" []
|
(context "/projects/:project-id" []
|
||||||
(ANY "/datasets" [] {:name :test/route3} handler)
|
(ANY "/datasets" [] {:name :test/route3} handler)
|
||||||
(ANY "/" [] {:name :test/route27} handler))
|
(ANY "/" [] {:name :test/route27} handler))
|
||||||
#_(ANY "/messages/dataset/bulk" [] {:name :test/route20} handler)
|
#_(ANY "/messages/dataset/bulk" [] {:name :test/route20} handler)
|
||||||
(ANY "/datasets/:dataset-id" [] {:name :test/route28} handler)
|
(ANY "/datasets/:dataset-id" [] {:name :test/route28} handler)
|
||||||
(ANY "/messages/dataset/:dataset-id" [] {:name :test/route53} handler))
|
(ANY "/messages/dataset/:dataset-id" [] {:name :test/route53} handler))
|
||||||
(ANY "/datasets/:dataset-id" [] {:name :test/route11} handler)
|
(ANY "/datasets/:dataset-id" [] {:name :test/route11} handler)
|
||||||
(ANY "/login" [] {:name :test/route23} handler)
|
(ANY "/login" [] {:name :test/route23} handler)
|
||||||
(ANY "/orgs/:org-id/topics" [] {:name :test/route40} handler)
|
(ANY "/orgs/:org-id/topics" [] {:name :test/route40} handler)
|
||||||
(ANY "/schemas" [] {:name :test/route44} handler)
|
(ANY "/schemas" [] {:name :test/route44} handler)
|
||||||
(ANY "/topics/:topic" [] {:name :test/route47} handler)
|
(ANY "/topics/:topic" [] {:name :test/route47} handler)
|
||||||
(ANY "/topics" [] {:name :test/route50} handler))))
|
(ANY "/topics" [] {:name :test/route50} handler))))
|
||||||
|
|
||||||
(def opensensors-pedestal-routes
|
(def opensensors-pedestal-routes
|
||||||
(map-tree/router
|
(map-tree/router
|
||||||
|
|
@ -489,11 +417,6 @@
|
||||||
(if-not match
|
(if-not match
|
||||||
(println route))))
|
(println route))))
|
||||||
|
|
||||||
(doseq [route (valid-urls (reitit/router opensensors-routes))]
|
|
||||||
(let [match (opensensors-compojure-api-routes {:uri route :request-method :get})]
|
|
||||||
(if-not match
|
|
||||||
(println route))))
|
|
||||||
|
|
||||||
(doseq [route (valid-urls (reitit/router opensensors-routes))]
|
(doseq [route (valid-urls (reitit/router opensensors-routes))]
|
||||||
(let [match (pedestal/find-route opensensors-pedestal-routes {:path-info route :request-method :get})]
|
(let [match (pedestal/find-route opensensors-pedestal-routes {:path-info route :request-method :get})]
|
||||||
(if-not match
|
(if-not match
|
||||||
|
|
@ -507,27 +430,25 @@
|
||||||
bidi-f #(bidi/match-route opensensors-bidi-routes (:uri %))
|
bidi-f #(bidi/match-route opensensors-bidi-routes (:uri %))
|
||||||
ataraxy-f (partial ataraxy/matches opensensors-ataraxy-routes)
|
ataraxy-f (partial ataraxy/matches opensensors-ataraxy-routes)
|
||||||
compojure-f opensensors-compojure-routes
|
compojure-f opensensors-compojure-routes
|
||||||
compojure-api-f opensensors-compojure-api-routes
|
|
||||||
pedestal-f (partial pedestal/find-route opensensors-pedestal-routes)
|
pedestal-f (partial pedestal/find-route opensensors-pedestal-routes)
|
||||||
b! (partial bench!! routes (fn [path] {:request-method :get, :uri path, :path-info path}) true)]
|
b! (partial bench!! routes (fn [path] {:request-method :get, :uri path, :path-info path}) true)]
|
||||||
|
|
||||||
;; 2538ns
|
;; 2538ns
|
||||||
;; 2065ns
|
;; 2065ns
|
||||||
;; 662ns (prefix-tree-router)
|
;; 662ns (prefix-tree-router)
|
||||||
|
;; 567ns (segment-router)
|
||||||
(b! "reitit" reitit-f)
|
(b! "reitit" reitit-f)
|
||||||
|
|
||||||
;; 2845ns
|
;; 2845ns
|
||||||
;; 2316ns
|
;; 2316ns
|
||||||
;; 819ns (prefix-tree-router)
|
;; 819ns (prefix-tree-router)
|
||||||
|
;; 723ns (segment-router)
|
||||||
(b! "reitit-ring" reitit-ring-f)
|
(b! "reitit-ring" reitit-ring-f)
|
||||||
|
|
||||||
;; 2540ns
|
;; 2821ns
|
||||||
(b! "pedestal" pedestal-f)
|
(b! "pedestal" pedestal-f)
|
||||||
|
|
||||||
;; 10300ns
|
;; 11615ns
|
||||||
(b! "compojure-api" compojure-api-f)
|
|
||||||
|
|
||||||
;; 10800ns
|
|
||||||
(b! "compojure" compojure-f)
|
(b! "compojure" compojure-f)
|
||||||
|
|
||||||
;; 15034ns
|
;; 15034ns
|
||||||
|
|
|
||||||
|
|
@ -49,7 +49,7 @@
|
||||||
"-Xmx4096m"
|
"-Xmx4096m"
|
||||||
"-Dclojure.compiler.direct-linking=true"]
|
"-Dclojure.compiler.direct-linking=true"]
|
||||||
:test-paths ["perf-test/clj"]
|
:test-paths ["perf-test/clj"]
|
||||||
:dependencies [[metosin/compojure-api "2.0.0-alpha12"]
|
:dependencies [[compojure "1.6.0"]
|
||||||
[io.pedestal/pedestal.route "0.5.3"]
|
[io.pedestal/pedestal.route "0.5.3"]
|
||||||
[org.clojure/core.async "0.3.443"]
|
[org.clojure/core.async "0.3.443"]
|
||||||
[ataraxy "0.4.0"]
|
[ataraxy "0.4.0"]
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue