Crossfilter versus Native-Array: Incremental (v3)

Revision 3 of this benchmark created on


Description

Changed location of crossfilter.js

Preparation HTML

<script src="https://square.github.io/crossfilter/crossfilter.v1.min.js"></script>

Setup

window.data = [
      {date: "2011-11-14T16:17:54Z", quantity: 2, total: 190, tip: 100, type: "tab"},
      {date: "2011-11-14T16:20:19Z", quantity: 2, total: 190, tip: 100, type: "tab"},
      {date: "2011-11-14T16:28:54Z", quantity: 1, total: 300, tip: 200, type: "visa"},
      {date: "2011-11-14T16:30:43Z", quantity: 2, total: 90, tip: 0, type: "tab"},
      {date: "2011-11-14T16:48:46Z", quantity: 2, total: 90, tip: 0, type: "tab"},
      {date: "2011-11-14T16:53:41Z", quantity: 2, total: 90, tip: 0, type: "tab"},
      {date: "2011-11-14T16:54:06Z", quantity: 1, total: 100, tip: 0, type: "cash"},
      {date: "2011-11-14T16:58:03Z", quantity: 2, total: 90, tip: 0, type: "tab"},
      {date: "2011-11-14T17:07:21Z", quantity: 2, total: 90, tip: 0, type: "tab"},
      {date: "2011-11-14T17:22:59Z", quantity: 2, total: 90, tip: 0, type: "tab"},
      {date: "2011-11-14T17:25:45Z", quantity: 2, total: 200, tip: 0, type: "cash"},
      {date: "2011-11-14T17:29:52Z", quantity: 1, total: 200, tip: 100, type: "visa"}
    ];

Test runner

Ready to run.

Testing in
TestOps/sec
Crossfilter
var payments = crossfilter(data);
var paymentsByTotal = payments.dimension(function(d) { return d.total; });
paymentsByTotal.top(Infinity);
payments.add(data);
paymentsByTotal.top(Infinity);
payments.add(data);
paymentsByTotal.top(Infinity);
payments.add(data);
paymentsByTotal.top(Infinity);
payments.add(data);
paymentsByTotal.top(Infinity);
ready
Native Array
var array = data.slice(0);
var arrayByTotal = array.slice(0).sort(function(a, b){ return b.total - a.total; });
array = array.concat(data);
arrayByTotal = array.slice(0).sort(function(a, b){ return b.total - a.total; });
array = array.concat(data);
arrayByTotal = array.slice(0).sort(function(a, b){ return b.total - a.total; });
array = array.concat(data);
arrayByTotal = array.slice(0).sort(function(a, b){ return b.total - a.total; });
array = array.concat(data);
arrayByTotal = array.slice(0).sort(function(a, b){ return b.total - a.total; });
ready

Revisions

You can edit these tests or add more tests to this page by appending /edit to the URL.