Socket
Socket
Sign inDemoInstall

bench

Package Overview
Dependencies
0
Maintainers
1
Versions
8
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 0.3.2 to 0.3.3

examples/array-ify-offset.js

328

examples/array-ify.js
// 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 @@

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc