Thanks for putting this together!  

For schema, I think using `s/validate` is not a fair comparison with the 
other libraries -- as you mention, it throws an exception on error, and it 
also has to parse the schema each time.  

I think `s/checker` is the correct construct to use here -- it returns an 
error or nil for success (no exceptions), and only parses the schema once. 
 (This is what's used by `s/defn`, for example).  

Here's a pull request that implements this change:

https://github.com/muhuk/validation-benchmark/pull/6

I posted the updated results in the PR comments as well, which are 
qualitatively quite different from the ones currently reported in your blog 
post (with this change, schema is fastest on all but one benchmark, often 
by a factor of 3 or more).  

Please let me know if you have any questions. 

Thanks,
Jason


On Tuesday, April 19, 2016 at 2:47:33 AM UTC+7, Atamert Ölçgen wrote:
>
> Hi All,
>
> I have been working a benchmark for (runtime) validation libraries. I 
> think it is mature enough to share the results with the group.
>
> The repo is here: https://github.com/muhuk/validation-benchmark
>
> Raw benchmark output as EDN is here: 
> https://gist.github.com/muhuk/93d7d9e46bf5191310aaa4557379d10e
>
> More human readable results are in my blog: 
> http://blog.muhuk.com/2016/04/18/performance_comparison_of_annotate_herbert_schema.html
>
> If you are familiar with Annotate, Herbert or Schema, please take a quick 
> look at their implementations: 
> https://github.com/muhuk/validation-benchmark/tree/master/src/validation_benchmark/lib
>
> Also contributions of other validation libraries are most welcome!
>
> -----
>
> As an aside: what is the group policy for attachments? Would it be ok if I 
> attached images of benchmark results?
>
> -- 
> Kind Regards,
> Atamert Ölçgen
>
> ◻◼◻
> ◻◻◼
> ◼◼◼
>
> www.muhuk.com
>

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to