ybiquitous/backbone.deepmodel

View on GitHub
benchmark.js

Summary

Maintainability
A
0 mins
Test Coverage
import Benchmark from 'benchmark'
import Backbone from 'backbone'
import DeepModel from './lib'

function log(msg) {
  process.stdout.write(`${msg}\n`)
}

function perf(name, callback) {
  const model = new Backbone.Model()
  const deepModel = new DeepModel()

  new Benchmark.Suite()
    .add(`Backbone.Model#${name}`, () => callback(model))
    .add(`Backbone.DeepModel#${name}`, () => callback(deepModel))
    .on('cycle', event => log(String(event.target)))
    .on('complete', event =>
      log(`Fastest is ${event.currentTarget.filter('fastest').map('name')}`)
    )
    .run({ async: true })
}

const { argv } = process
if (argv.includes('get')) {
  perf('get', model => model.get('name'))
} else if (argv.includes('set')) {
  perf('set', model => model.set('name', 'foo'))
}