From: tomerle Date: Fri, 24 Apr 2020 11:30:44 +0000 (+0300) Subject: [misc] Add general benchmarks: get, set, compare (#2659) (#4963) X-Git-Tag: 2.25.0~71 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c1177f4d6b09ba87368f36d77833e9d04c8ba02d;p=thirdparty%2Fmoment.git [misc] Add general benchmarks: get, set, compare (#2659) (#4963) Add grunt benchmark sub tasks: get, set, endOf, startOf, compare Add grunt benchmark sub task for running all: all --- diff --git a/Gruntfile.js b/Gruntfile.js index 557f9de9e..05147e985 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -153,9 +153,12 @@ module.exports = function (grunt) { } }, benchmark: { - all: { - src: ['benchmarks/*.js'] - } + compare: {src: ['benchmarks/compare.js']}, + startOf: {src: ['benchmarks/startOf.js']}, + endOf: {src: ['benchmarks/endOf.js']}, + get: {src: ['benchmarks/get.js']}, + set: {src: ['benchmarks/set.js']}, + all: {src: ['benchmarks/*.js']} }, exec: { 'meteor-init': { diff --git a/benchmarks/compare.js b/benchmarks/compare.js new file mode 100644 index 000000000..fc32c8c11 --- /dev/null +++ b/benchmarks/compare.js @@ -0,0 +1,33 @@ +var moment = require("./../moment.js"); + +var UNIT = 'date'; + +var NOW = Date.now(); +var DIFF = -1 * 24 * 60 * 60 * 1e3 + +var THIS = moment(NOW); +var INPUT = moment(NOW + DIFF); + +// For isBetween +var FROM = moment(NOW + DIFF); +var TO = moment(NOW + 2 * DIFF); + +function createTest(method) { + return { + fn: function() { return method.call(THIS, INPUT, UNIT); }, + async: false + }; +} + +var tests = {}; +tests.isAfter = createTest(THIS.isAfter); +tests.isBefore = createTest(THIS.isBefore); +tests.isSame = createTest(THIS.isSame); +tests.isSameOrAfter = createTest(THIS.isSameOrAfter); +tests.isSameOrBefore = createTest(THIS.isSameOrBefore); +tests.isBetween = createTest(function () { return THIS.isBetween(FROM, TO, UNIT); }); + +module.exports = { + name: 'compare ' + UNIT, + tests: tests +}; diff --git a/benchmarks/get.js b/benchmarks/get.js new file mode 100644 index 000000000..a654df4de --- /dev/null +++ b/benchmarks/get.js @@ -0,0 +1,21 @@ +var moment = require('./../moment.js'); + +var base = moment('2013-05-25'); + +function createTest(unit) { + return { + fn: function () { base.get(unit); }, + async: false + }; +} + +var units = ['second', 'minute', 'hour', 'date', 'day', 'isoWeek', 'week', 'month', 'quarter', 'year']; +var tests = units.reduce(function (tests, unit) { + tests['get ' + unit] = createTest(unit); + return tests; +}, {}); + +module.exports = { + name: 'get', + tests: tests +}; diff --git a/benchmarks/set.js b/benchmarks/set.js new file mode 100644 index 000000000..1e7b1e0cf --- /dev/null +++ b/benchmarks/set.js @@ -0,0 +1,22 @@ +var moment = require('./../moment.js') + +var base = moment('2013-05-25'); +var value = 2; + +function createTest(unit) { + return { + fn: function () { base.set(unit, value); }, + async: false + }; +} + +var units = ['second', 'minute', 'hour', 'date', 'day', 'isoWeek', 'week', 'month', 'quarter', 'year']; +var tests = units.reduce(function (tests, unit) { + tests['set ' + unit] = createTest(unit); + return tests; +}, {}); + +module.exports = { + name: 'set', + tests: tests +};