This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2019-10-09
Channels
- # announcements (5)
- # babashka (1)
- # beginners (116)
- # calva (139)
- # cider (11)
- # clara (2)
- # clj-kondo (13)
- # clojure (247)
- # clojure-dev (18)
- # clojure-europe (5)
- # clojure-france (2)
- # clojure-italy (2)
- # clojure-nl (7)
- # clojure-spec (24)
- # clojure-uk (34)
- # clojurescript (41)
- # cursive (11)
- # data-science (2)
- # datomic (33)
- # emacs (10)
- # events (3)
- # fulcro (134)
- # graphql (9)
- # jackdaw (3)
- # jobs (1)
- # joker (20)
- # kaocha (3)
- # leiningen (7)
- # luminus (2)
- # malli (3)
- # music (1)
- # pedestal (7)
- # re-frame (25)
- # remote-jobs (7)
- # ring (7)
- # shadow-cljs (85)
- # spacemacs (13)
- # testing (2)
- # tools-deps (60)
- # xtdb (11)
- # yada (7)
ok, could be faster. the date parsing on java-side seems quite slow in general:
(require '[malli.core :as m])
(require '[malli.transform :as mt])
(def Pizza
[:map
[:id int?]
[:name string?]
[:created inst?]])
(def json->Pizza
(m/transformer
Pizza
mt/json-transformer))
(json->Pizza
{:id 1
:name "salami"
:created "2019-10-04T09:08:36.078Z"})
;{:id 1
; :name "salami"
; :created #inst"2019-10-04T09:08:36.078-00:00"}
(require '[criterium.core :as cc])
(cc/quick-bench
(json->Pizza
{:id 1
:name "salami"
:created "2019-10-04T09:08:36.078Z"}))
; Evaluation count : 386256 in 6 samples of 64376 calls.
; Execution time mean : 1.719360 µs
; Execution time std-deviation : 100.090402 ns
; Execution time lower quantile : 1.601860 µs ( 2.5%)
; Execution time upper quantile : 1.811632 µs (97.5%)
; Overhead used : 1.862824 ns
with schema-tools:
(require '[schema.core :as s])
(require '[schema-tools.coerce :as stc])
(def json->Pizza2
(stc/coercer {:id s/Int, :name s/Str, :created s/Inst} stc/json-coercion-matcher))
(json->Pizza2
{:id 1
:name "salami"
:created "2019-10-04T09:08:36.078Z"})
;{:id 1
; :name "salami"
; :created #inst"2019-10-04T09:08:36.078-00:00"}
(cc/quick-bench
(json->Pizza2
{:id 1
:name "salami"
:created "2019-10-04T09:08:36.078Z"}))
; Evaluation count : 261396 in 6 samples of 43566 calls.
; Execution time mean : 2.352737 µs
; Execution time std-deviation : 173.369968 ns
; Execution time lower quantile : 2.255370 µs ( 2.5%)
; Execution time upper quantile : 2.636725 µs (97.5%)
; Overhead used : 1.600826 ns
👍 4