Comparing version 0.3.2 to 0.3.3
// testing converting arguments to an Array | ||
function manualMap () { | ||
var arr = [] | ||
for (var i = 0, l = arguments.length; i < l; i ++) { | ||
if (arguments.hasOwnProperty(i)) arr[i] = arguments[i] | ||
} | ||
var l = arguments.length | ||
var arr = new Array(l) | ||
for (var i = 0; i < l; i ++) arr[i] = arguments[i] | ||
return arr | ||
@@ -12,5 +11,20 @@ } | ||
function manualMapArg (x) { | ||
var arr = [] | ||
for (var i = 0, l = arguments.length; i < l; i ++) { | ||
if (arguments.hasOwnProperty(i)) arr[i] = arguments[i] | ||
var l = arguments.length | ||
var arr = new Array(l) | ||
for (var i = 0; i < l; i ++) arr[i] = arguments[i] | ||
return arr | ||
} | ||
function duff () { | ||
var l = arguments.length | ||
var arr = new Array(l) | ||
switch (l) { | ||
case 8: arr[7] = arguments[7] | ||
case 7: arr[6] = arguments[6] | ||
case 6: arr[5] = arguments[5] | ||
case 5: arr[4] = arguments[4] | ||
case 4: arr[3] = arguments[3] | ||
case 3: arr[2] = arguments[2] | ||
case 2: arr[1] = arguments[1] | ||
case 1: arr[0] = arguments[0] | ||
} | ||
@@ -21,17 +35,9 @@ return arr | ||
function arrayApply () { | ||
return Array.apply(null, arguments) | ||
return arguments.length === 1 ? [arguments[0]] : Array.apply(null, arguments) | ||
} | ||
function arrayApplyArg (x) { | ||
return Array.apply(null, arguments) | ||
return arguments.length === 1 ? [arguments[0]] : Array.apply(null, arguments) | ||
} | ||
function arrayCall () { | ||
return Array.call(null, arguments) | ||
} | ||
function arrayCallArg (x) { | ||
return Array.call(null, arguments) | ||
} | ||
function sliceCall () { | ||
@@ -69,190 +75,186 @@ return Array.prototype.slice.call(arguments) | ||
function arrayProto () { | ||
arguments.__proto__ = Array.prototype | ||
return arguments | ||
} | ||
exports.compare = | ||
{ manualMap: function () { | ||
return manualMap(1,2,3,4,5,6,7,8,9,0) | ||
return [ manualMap(Math.random()), manualMap(Math.random(), Math.random()) ] | ||
} | ||
, manualMapArg: function() { | ||
return manualMapArg(1,2,3,4,5,6,7,8,9,0) | ||
, arrayProto: function () { | ||
return [ arrayProto(Math.random()), arrayProto(Math.random(), Math.random()) ] | ||
} | ||
, arrayApply: function() { | ||
return arrayApply(1,2,3,4,5,6,7,8,9,0) | ||
, duff: function () { | ||
return [ duff(Math.random()), duff(Math.random(), Math.random()) ] | ||
} | ||
, arrayApplyArg: function() { | ||
return arrayApplyArg(1,2,3,4,5,6,7,8,9,0) | ||
, arrayApply: function () { | ||
return [ arrayApply(Math.random()), arrayApply(Math.random(), Math.random()) ] | ||
} | ||
, arrayCall: function() { | ||
return arrayCall(1,2,3,4,5,6,7,8,9,0) | ||
} | ||
, arrayCallArg: function() { | ||
return arrayCallArg(1,2,3,4,5,6,7,8,9,0) | ||
} | ||
, sliceCall: function() { | ||
return sliceCall(1,2,3,4,5,6,7,8,9,0) | ||
} | ||
, sliceCallArg: function() { | ||
return sliceCallArg(1,2,3,4,5,6,7,8,9,0) | ||
} | ||
, sliceZeroCall: function() { | ||
return sliceZeroCall(1,2,3,4,5,6,7,8,9,0) | ||
} | ||
, sliceZeroCallArg: function() { | ||
return sliceZeroCallArg(1,2,3,4,5,6,7,8,9,0) | ||
} | ||
, sliceApply: function() { | ||
return sliceApply(1,2,3,4,5,6,7,8,9,0) | ||
} | ||
, sliceApplyArg: function() { | ||
return sliceApplyArg(1,2,3,4,5,6,7,8,9,0) | ||
} | ||
, sliceZeroApply: function() { | ||
return sliceZeroApply(1,2,3,4,5,6,7,8,9,0) | ||
} | ||
, sliceZeroApplyArg: function() { | ||
return sliceZeroApplyArg(1,2,3,4,5,6,7,8,9,0) | ||
} | ||
//, manualMapArg: function () { | ||
// return [ manualMapArg(Math.random()), manualMapArg(Math.random(), Math.random()) ] | ||
// } | ||
//, arrayApplyArg: function () { | ||
// return [ arrayApplyArg(Math.random()), arrayApplyArg(Math.random(), Math.random()) ] | ||
// } | ||
//, sliceCall: function () { | ||
// return [ sliceCall(Math.random()), sliceCall(Math.random(), Math.random()) ] | ||
// } | ||
//, sliceCallArg: function () { | ||
// return [ sliceCallArg(Math.random()), sliceCallArg(Math.random(), Math.random()) ] | ||
// } | ||
//, sliceZeroCall: function () { | ||
// return [ sliceZeroCall(Math.random()), sliceZeroCall(Math.random(), Math.random()) ] | ||
// } | ||
//, sliceZeroCallArg: function () { | ||
// return [ sliceZeroCallArg(Math.random()), sliceZeroCallArg(Math.random(), Math.random()) ] | ||
// } | ||
//, sliceApply: function () { | ||
// return [ sliceApply(Math.random()), sliceApply(Math.random(), Math.random()) ] | ||
// } | ||
//, sliceApplyArg: function () { | ||
// return [ sliceApplyArg(Math.random()), sliceApplyArg(Math.random(), Math.random()) ] | ||
// } | ||
//, sliceZeroApply: function () { | ||
// return [ sliceZeroApply(Math.random()), sliceZeroApply(Math.random(), Math.random()) ] | ||
// } | ||
//, sliceZeroApplyArg: function () { | ||
// return [ sliceZeroApplyArg(Math.random()), sliceZeroApplyArg(Math.random(), Math.random()) ] | ||
// } | ||
} | ||
exports.countPerLap = 2 | ||
require("../").runMain() | ||
/* | ||
benchmarking /Users/isaacs/dev-src/js/node-bench/examples/array-ify.js | ||
Please be patient. | ||
{ node: '0.5.2-pre', | ||
v8: '3.4.12.1', | ||
ares: '1.7.4', | ||
uv: '0.1', | ||
openssl: '0.9.8l' } | ||
Scores: (bigger is better) | ||
arrayCall | ||
arrayApply | ||
Raw: | ||
> 5918.081918081918 | ||
> 5746.253746253747 | ||
> 4681.318681318681 | ||
> 5902.097902097902 | ||
> 5949.050949050949 | ||
Average (mean) 5639.36063936064 | ||
> 11778.221778221778 | ||
> 12207.792207792209 | ||
> 12815.184815184815 | ||
> 10159.84015984016 | ||
> 12595.404595404596 | ||
Average (mean) 11911.288711288711 | ||
arrayCallArg | ||
manualMap | ||
Raw: | ||
> 6030.969030969031 | ||
> 5064.935064935065 | ||
> 5755.244755244756 | ||
> 5182.817182817183 | ||
> 5903.096903096903 | ||
Average (mean) 5587.4125874125875 | ||
> 10637.362637362638 | ||
> 10522.432701894317 | ||
> 11186.813186813188 | ||
> 9558.441558441558 | ||
> 11064.935064935065 | ||
Average (mean) 10593.997029889355 | ||
sliceCall | ||
arrayApplyArg | ||
Raw: | ||
> 5429.57042957043 | ||
> 5375.624375624376 | ||
> 5340.659340659341 | ||
> 5496.5034965034965 | ||
> 4968.031968031968 | ||
Average (mean) 5322.077922077922 | ||
> 9370.62937062937 | ||
> 9648.351648351649 | ||
> 9518.481518481518 | ||
> 9866.133866133867 | ||
> 9996.003996003996 | ||
Average (mean) 9679.92007992008 | ||
sliceCallArg | ||
manualMapArg | ||
Raw: | ||
> 5239.7602397602395 | ||
> 5359.64035964036 | ||
> 5357.642357642358 | ||
> 5398.601398601399 | ||
> 5072.927072927073 | ||
Average (mean) 5285.714285714285 | ||
> 9880.11988011988 | ||
> 9332.667332667334 | ||
> 9550.44955044955 | ||
> 9154.845154845154 | ||
> 10463.536463536464 | ||
Average (mean) 9676.323676323675 | ||
sliceZeroCall | ||
sliceZeroApply | ||
Raw: | ||
> 5553.4465534465535 | ||
> 5338.661338661339 | ||
> 5342.657342657342 | ||
> 4795.204795204795 | ||
> 5142.857142857143 | ||
Average (mean) 5234.565434565435 | ||
> 2339.6603396603396 | ||
> 2355.6443556443555 | ||
> 2337.6623376623374 | ||
> 2281.7182817182816 | ||
> 2305.3892215568862 | ||
Average (mean) 2324.01490724844 | ||
sliceZeroCallArg | ||
sliceApply | ||
Raw: | ||
> 5431.568431568431 | ||
> 5367.632367632367 | ||
> 4291.708291708292 | ||
> 5346.6533466533465 | ||
> 5464.535464535465 | ||
Average (mean) 5180.41958041958 | ||
> 2115.884115884116 | ||
> 2185.8141858141857 | ||
> 2175.8241758241757 | ||
> 2223.552894211577 | ||
> 2151.8481518481517 | ||
Average (mean) 2170.584704716441 | ||
arrayApply | ||
sliceCall | ||
Raw: | ||
> 4832.167832167832 | ||
> 4873.126873126873 | ||
> 4656.343656343656 | ||
> 4287.712287712287 | ||
> 4534.465534465535 | ||
Average (mean) 4636.763236763237 | ||
> 2131.868131868132 | ||
> 2029.97002997003 | ||
> 1982.017982017982 | ||
> 2031.968031968032 | ||
> 2049.95004995005 | ||
Average (mean) 2045.154845154845 | ||
sliceApplyArg | ||
sliceZeroCall | ||
Raw: | ||
> 5003.996003996004 | ||
> 4893.106893106893 | ||
> 4930.06993006993 | ||
> 4518.481518481519 | ||
> 3457.5424575424577 | ||
Average (mean) 4560.639360639361 | ||
> 2071.928071928072 | ||
> 2001.998001998002 | ||
> 2105.577689243028 | ||
> 1942.057942057942 | ||
> 2039.96003996004 | ||
Average (mean) 2032.304349037417 | ||
arrayApplyArg | ||
sliceZeroCallArg | ||
Raw: | ||
> 5000.999000999001 | ||
> 4805.194805194805 | ||
> 4809.190809190809 | ||
> 3196.803196803197 | ||
> 4927.072927072927 | ||
Average (mean) 4547.852147852148 | ||
> 129.4820717131474 | ||
> 134.65346534653466 | ||
> 128.8404360753221 | ||
> 128.7128712871287 | ||
> 128.8404360753221 | ||
Average (mean) 130.10585609949098 | ||
sliceApply | ||
Raw: | ||
> 4996.003996003996 | ||
> 4050.949050949051 | ||
> 4600.399600399601 | ||
> 5046.953046953047 | ||
> 3790.2097902097903 | ||
Average (mean) 4496.903096903096 | ||
sliceZeroApplyArg | ||
Raw: | ||
> 4186.813186813187 | ||
> 4186.813186813187 | ||
> 4238.761238761239 | ||
> 3416.5834165834167 | ||
> 4245.754245754246 | ||
Average (mean) 4054.945054945055 | ||
> 129.4820717131474 | ||
> 131.34328358208955 | ||
> 129.03225806451613 | ||
> 128.96825396825398 | ||
> 129.35323383084577 | ||
Average (mean) 129.63582023177054 | ||
sliceZeroApply | ||
sliceCallArg | ||
Raw: | ||
> 4419.580419580419 | ||
> 3518.4815184815184 | ||
> 4240.759240759241 | ||
> 4274.725274725275 | ||
> 3201.7982017982017 | ||
Average (mean) 3931.0689310689313 | ||
> 127.11022840119166 | ||
> 124.62908011869436 | ||
> 126.23274161735701 | ||
> 128.8404360753221 | ||
> 123.50597609561753 | ||
Average (mean) 126.06369246163653 | ||
manualMap | ||
sliceApplyArg | ||
Raw: | ||
> 683.6327345309381 | ||
> 692.6147704590818 | ||
> 693.3066933066933 | ||
> 688.622754491018 | ||
> 653.692614770459 | ||
Average (mean) 682.3739135116381 | ||
> 128.33168805528135 | ||
> 121.27236580516899 | ||
> 122.2879684418146 | ||
> 120.67260138476756 | ||
> 120.67260138476756 | ||
Average (mean) 122.64744501436 | ||
manualMapArg | ||
Raw: | ||
> 662.3376623376623 | ||
> 673.3266733266734 | ||
> 673.3266733266734 | ||
> 564.8702594810379 | ||
> 666.6666666666666 | ||
Average (mean) 648.1055870277427 | ||
Winner: arrayApply | ||
Compared with next highest (manualMap), it's: | ||
11.06% faster | ||
1.12 times as fast | ||
0.05 order(s) of magnitude faster | ||
Winner: arrayCall | ||
Compared with next highest (arrayCallArg), it's: | ||
0.92% faster | ||
1.01 times as fast | ||
0 order(s) of magnitude faster | ||
Compared with the slowest (sliceApplyArg), it's: | ||
98.97% faster | ||
97.12 times as fast | ||
1.99 order(s) of magnitude faster | ||
Compared with the slowest (manualMapArg), it's: | ||
88.51% faster | ||
8.7 times as fast | ||
0.94 order(s) of magnitude faster | ||
*/ |
@@ -18,2 +18,3 @@ | ||
console.log("benchmarking "+require.main.filename+"\nPlease be patient.") | ||
console.log(process.versions) | ||
if (test.stepsPerLap) exports.STEPS_PER_LAP = test.stepsPerLap | ||
@@ -31,3 +32,3 @@ | ||
var events = require("events") | ||
, sys = require("sys") | ||
, util = require("util") | ||
@@ -128,3 +129,3 @@ function run (fn, time, countPerLap, cb) { | ||
function print (m,cr) { sys.print(m+(cr===false?"":"\n")); return print } | ||
function print (m,cr) { util.print(m+(cr===false?"":"\n")); return print } | ||
@@ -131,0 +132,0 @@ function show (results) { |
{ "name" : "bench" | ||
, "version" : "0.3.2" | ||
, "version" : "0.3.3" | ||
, "description" : "A little utility for doing side-by-side benchmarks in nodejs" | ||
@@ -4,0 +4,0 @@ , "author" : "Isaac Z. Schlueter <i@izs.me>" |
@@ -73,3 +73,3 @@ # node bench | ||
continuing. In these cases, to make your scores reflect the actual number | ||
of processes per second, indicate the number of runs per call in the | ||
of processes per ms, indicate the number of runs per call in the | ||
"countPerLap" field. Default: `1` | ||
@@ -76,0 +76,0 @@ |
New author
Supply chain riskA new npm collaborator published a version of the package for the first time. New collaborators are usually benign additions to a project, but do indicate a change to the security surface area of a package.
Found 1 instance in 1 package
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 1 instance in 1 package
Non-existent author
Supply chain riskThe package was published by an npm account that no longer exists.
Found 1 instance in 1 package
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
563751
1050
1424
0
3