Awesome! Prediction (can't wait to be proven wrong):
* Very little difference in different implementations (because stdio is the bottleneck) * Native views are faster but not *way* faster Wrinkles: * I vaguely recall JS being about equal speed to Erlang (native) when benchmarking manage_couchdb: https://github.com/iriscouch/manage_couchdb * I vaguely recall Mikeal Rogers saying his Python view server was so much faster than JS back in his days at Mozilla On Sun, Jan 27, 2013 at 2:06 PM, Russell Branca <[email protected]>wrote: > Given the current momentum in updating the CouchDB view engine, I thought > it prudent to get a baseline of performance for the various engines. > > I hacked together a benchmark suite today that will give a minimum set of > metrics. If there is interest, hopefully we can put together a > comprehensive view benchmarking suite. > > Repo is at: https://github.com/chewbranca/all-the-numbers > > I'm dumping a copy of the README here: > > # all-the-numbers > > CouchDB View Server Benchmarking Suite > > ## Goals > > To establish a baseline set of metrics for comparing various view engines. > The > benchmark is designed to do an "end to end" benchmark of the views, > testing the > total time it takes for the view engine to process the docs and get the > data > saved to disk in CouchDB. The motivation for this is to get a relatively > accurate look at external view engine performance compared to the native > erlang > view engine. > > Additionally, the results should be saved for easy comparisons and > analysis. This will currently save results into > http://localhost:5984/all\_the\_numbers\_results. > > Ideally this tool will be comprehensive in covering the various view > engines and provide simple config examples required to run benchmarks > locally against all view engines. > > Initial benchmarks that come to mind: > > * Base SpiderMonkey view engine > * Jason's direct node.js port > * Native Erlang view engine (how much does serializing to external > services really cost) > * Things along the lines of erlv8 > * Anything else > > ## Status > > This is currently a rough benchmark I threw together today. Hopefully we > can > get feedback on a comprehensive suite of view tests to accurately guage > relative performance. Various settings are currently hardcoded in bench.js. > > ## Install and Run > > npm install > > node bench.js > > ## Config > > ; Default view engine > ; [query_servers] > ; javascript = /usr/local/bin/couchjs > /usr/local/share/couchdb/server/main.js > > ## Contributing > > Please! > > Fork this repo, add a ddoc for your view engine to the ddocs var, and > update the config values in the README for your particular engine. > Ideally each additional view engine should be properly namespaced so > that all view engines can be easily tested against. For instance, > different languages could be "javascript," "javascri\_node.js," > "javascript\_v8\_experiments," "some\_other\_view\_engine." > > ## License > > Apache License Version 2.0 > > > -Russell > -- Iris Couch
