couchdb-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Russell Branca <>
Subject All The Numbers -- View Engine Performance Benchmarks
Date Sun, 27 Jan 2013 07:06:44 GMT
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:

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

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

## Contributing


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


  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message