reagent icon indicating copy to clipboard operation
reagent copied to clipboard

Create performance benchmarks

Open Deraen opened this issue 7 years ago • 5 comments

A few recent changes have probably touched on performance critical code paths, but I don't currently have any way to test and track performance changes.

Deraen avatar Nov 28 '17 16:11 Deraen

Would it be useful if I tried to implement this or this for reagent, and got numbers for the last few releases? Does anyone know of other relevant benchmarks?

atroche avatar Apr 28 '18 03:04 atroche

Oh, hang on a tick!

https://github.com/krausest/js-framework-benchmark/tree/master/reagent-v0.8-keyed

atroche avatar Apr 28 '18 04:04 atroche

Quick snapshot of results for anyone who's curious:

image

https://rawgit.com/krausest/js-framework-benchmark/master/webdriver-ts-results/table.html

atroche avatar Apr 28 '18 04:04 atroche

Yes, I know that one, I implemented Reagent case for that project. It is quite nice tool to compare performance between React wrappers and others, but the standard deviation for results is often quite high (e.g select for 16.4ms vs. 3.9ms stddev). This means this is not very useful tool for comparing performance between two commits with minor changes.

I've been thinking about having two tools (in addition to the js-framework-benchmark). One would be to automatically run some test set automatically for every Reagent commit. This would be very similar to js-framework-benchmark implementation, but if possible, be more accurate. And second tool would be to have some examples and maybe a few test cases for some hot code paths and use some Criterium style tool (benchmark.js?) to benchmark important functions. This would help with optimizing the important functions.

Deraen avatar Apr 28 '18 15:04 Deraen

There is a Criterium port for ClojureScript floating around somewhere, can't remember where I saw it though.

danielcompton avatar May 01 '18 08:05 danielcompton