mirror of
https://github.com/metosin/reitit.git
synced 2026-02-14 23:35:16 +00:00
sieppari is 2-4x slower than mw
This commit is contained in:
parent
a08a4adffa
commit
6e31afa515
1 changed files with 43 additions and 3 deletions
|
|
@ -41,11 +41,12 @@
|
||||||
(let [values (or (:values request) [])]
|
(let [values (or (:values request) [])]
|
||||||
(handler (assoc request :values (conj values value))))))
|
(handler (assoc request :values (conj values value))))))
|
||||||
|
|
||||||
|
(def map-request {})
|
||||||
|
(def record-request (map->RequestOrContext map-request))
|
||||||
|
|
||||||
(defn middleware-test []
|
(defn middleware-test []
|
||||||
(let [mw (map (fn [value] [middleware value]) (range +items+))
|
(let [mw (map (fn [value] [middleware value]) (range +items+))
|
||||||
app (middleware/chain mw identity)
|
app (middleware/chain mw identity)]
|
||||||
map-request {}
|
|
||||||
record-request (map->RequestOrContext map-request)]
|
|
||||||
|
|
||||||
;; 1000ns
|
;; 1000ns
|
||||||
(title "middleware - map")
|
(title "middleware - map")
|
||||||
|
|
@ -65,6 +66,44 @@
|
||||||
(cc/quick-bench
|
(cc/quick-bench
|
||||||
((middleware/chain mw identity) record-request))))
|
((middleware/chain mw identity) record-request))))
|
||||||
|
|
||||||
|
(defn sieppari-test []
|
||||||
|
(let [interceptors (conj
|
||||||
|
(mapv
|
||||||
|
(fn [value]
|
||||||
|
{:enter (fn [ctx]
|
||||||
|
(let [request (:request ctx)
|
||||||
|
values (conj (or (:values request) []) value)]
|
||||||
|
(assoc ctx :request (assoc request :values values))))})
|
||||||
|
(range +items+))
|
||||||
|
identity)
|
||||||
|
queue (sieppari.queue/into-queue interceptors)
|
||||||
|
app (fn [req] (sieppari.core/execute interceptors req))
|
||||||
|
app2 (fn [req] (sieppari.core/execute queue req))]
|
||||||
|
|
||||||
|
;; 5500ns
|
||||||
|
(title "sieppari - map")
|
||||||
|
(expected! (app map-request))
|
||||||
|
(cc/quick-bench
|
||||||
|
(app map-request))
|
||||||
|
|
||||||
|
;; 4600ns
|
||||||
|
(title "sieppari - record")
|
||||||
|
(expected! (app record-request))
|
||||||
|
(cc/quick-bench
|
||||||
|
(app record-request))
|
||||||
|
|
||||||
|
;; 2200ns
|
||||||
|
(title "sieppari - map (compiled queue)")
|
||||||
|
(expected! (app2 map-request))
|
||||||
|
(cc/quick-bench
|
||||||
|
(app2 map-request))
|
||||||
|
|
||||||
|
;; 1600ns
|
||||||
|
(title "sieppari - record (compiled queue)")
|
||||||
|
(expected! (app2 record-request))
|
||||||
|
(cc/quick-bench
|
||||||
|
(app2 record-request))))
|
||||||
|
|
||||||
;;
|
;;
|
||||||
;; Reduce
|
;; Reduce
|
||||||
;;
|
;;
|
||||||
|
|
@ -239,6 +278,7 @@
|
||||||
(comment
|
(comment
|
||||||
(interceptor-test)
|
(interceptor-test)
|
||||||
(middleware-test)
|
(middleware-test)
|
||||||
|
(sieppari-test)
|
||||||
(pedestal-chain-text)
|
(pedestal-chain-text)
|
||||||
(pedestal-tuned-chain-text)
|
(pedestal-tuned-chain-text)
|
||||||
(interceptor-chain-test))
|
(interceptor-chain-test))
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue