Description
I have defined schema'd record (here https://github.com/asciinema/asciinema-player/blob/19c5c423e3ca78df1ae04dcebbf0d32437e303e1/src/asciinema/player/vt.cljc#L56), used s/defn
to few functions and enabled schema validation in test via (use-fixtures :once schema.test/validate-schemas)
(here https://github.com/asciinema/asciinema-player/blob/19c5c423e3ca78df1ae04dcebbf0d32437e303e1/test/asciinema/player/vt_test.cljc#L15).
I have noticed that schema validation is very slow when under ClojureScript. Without validation the tests under both Clojure and ClojureScript were finishing in few seconds. After enabling the validation I noticed that it's still couple of seconds for Clojure but 15+ minutes for ClojureScript (phantomjs). Right now I'm enabling test validation for Clojure only because of this, using reader conditional (as seen in the second link above).
It seems it's not test-specific problem, because I can observe the same behavior when using (s/set-fn-validation! true)
.
I tried to find a specific part of this VT
schema that makes it so slow (changing different sub-schemas to s/Any
etc) and it seems there's no single key/sub-schema that makes it slow, it just adds up from all sub-schemas.
I'd be happy to give more information, test, dig deeper. Any hints?