12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- var util = require('util')
- , diff = require('..')
- , data = require('./practice-data')
- ;
- var cycle = -1
- , i
- , len = data.length
- , prior = {}
- , comparand
- , records
- , roll = []
- , stat
- , stats = []
- , mark, elapsed, avg = { diff: { ttl: 0 }, apply: { ttl: 0 } }, ttl = 0
- ;
- mark = process.hrtime();
- while (++cycle < 10) {
- i = -1;
- while (++i < len) {
- stats.push(stat = { mark: process.hrtime() });
- comparand = roll[i] || data[i];
- stat.diff = { mark: process.hrtime() };
- records = diff(prior, comparand);
- stat.diff.intv = process.hrtime(stat.diff.mark);
- if (records) {
- stat.apply = { count: diff.length, mark: process.hrtime() };
- records.forEach(function (ch) {
- diff.applyChange(prior, comparand, ch);
- });
- stat.apply.intv = process.hrtime(stat.apply.mark);
- prior = comparand;
- }
- stat.intv = process.hrtime(stat.mark);
- }
- }
- function ms(intv) {
- return (intv[0] * 1e9 + intv[1] / 1e6);
- }
- elapsed = ms(process.hrtime(mark));
- stats.forEach(function (stat) {
- stat.elapsed = ms(stat.intv);
- stat.diff.elapsed = ms(stat.diff.intv);
- avg.diff.ttl += stat.diff.elapsed;
- if (stat.apply) {
- stat.apply.elapsed = ms(stat.apply.intv);
- ttl += stat.apply.count;
- avg.apply.ttl += stat.apply.elapsed;
- }
- });
- avg.diff.avg = avg.diff.ttl / ttl;
- avg.apply.avg = avg.apply.ttl / ttl;
- console.log('Captured '.concat(stats.length, ' samples with ', ttl, ' combined differences in ', elapsed, 'ms'));
- console.log('\tavg diff: '.concat(avg.diff.avg, 'ms or ', (1 / avg.diff.avg), ' per ms'));
- console.log('\tavg apply: '.concat(avg.apply.avg, 'ms or ', (1 / avg.apply.avg), ' per ms'));
|