Join our webinar on Wednesday, June 26, at 1pm EDTHow Chia Mitigates Risk in the Crypto Industry.Register
Socket
Socket
Sign inDemoInstall

benchmark-suite

Package Overview
Dependencies
20
Maintainers
1
Versions
11
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 0.1.4 to 0.1.5

13

index.js

@@ -8,2 +8,11 @@ var EventEmitter = require('eventemitter3');

function toJSON(results) {
var json = {};
for (var key in results) {
json[key] = { name: results[key].name };
json[key].stats = results[key].stats.toJSON();
}
return json;
}
module.exports = class Suite extends EventEmitter {

@@ -33,5 +42,5 @@ constructor(name, type) {

}
this.emit('cycle', result);
this.emit('cycle', toJSON(result));
}
this.emit('complete', results);
this.emit('complete', toJSON(results));
}

@@ -38,0 +47,0 @@

56

lib/MemoryTest.js

@@ -19,3 +19,3 @@ var Stats = require('stats-accumulator');

const startTime = Date.now();
const results = { end: { name: this.name, stats: Stats() }, iteration: { name: this.name, stats: Stats() } };
const results = { end: { name: this.name, stats: Stats() }, delta: { name: this.name, stats: Stats() } };

@@ -25,3 +25,3 @@ do {

results.end.stats.update(run.end);
results.iteration.stats.update(run.iteration.max);
results.delta.stats.update(run.delta.max);
} while (Date.now() - startTime <= time);

@@ -33,5 +33,20 @@

async callibrate(options) {
if (options.heapdumpTrigger) await writeSnapshot(`hd-calibrate.heapsnapshot`);
await this.fn(() => {});
await this.fn(() => {});
const dump = options.heapdumpTrigger && !options.heapdumped;
let dumped = false;
let stats = Stats();
while (stats.n < 5) {
gc();
const start = process.memoryUsage().heapUsed;
await this.fn(() => {});
if (dump && !dumped) {
dumped = true;
await writeSnapshot(`hd-calibrate.heapsnapshot`);
gc();
}
gc();
const delta = process.memoryUsage().heapUsed - start;
if (delta < 0) stats = Stats();
else stats.update(delta);
}
}

@@ -44,21 +59,21 @@

let dumped = false;
const dump = options.heapdumpTrigger && !options.heapdumped;
let dumped = false;
if (dump) {
await writeSnapshot(`hd-${this.name}-${now}-start.heapsnapshot`);
gc();
await writeSnapshot(`hd-${this.name}-${now}-start.heapsnapshot`);
}
gc();
const start = process.memoryUsage();
const start = process.memoryUsage().heapUsed;
await this.fn(async () => {
gc();
const heapUsed = process.memoryUsage().heapUsed - start.heapUsed;
stats.update(heapUsed);
if (dump && heapUsed > options.heapdumpTrigger) {
if (!dumped) {
dumped = true;
options.heapdumped = true;
await writeSnapshot(`hd-${this.name}-${now}-triggered.heapsnapshot`);
}
const delta = process.memoryUsage().heapUsed - start;
stats.update(delta);
if (dump && !dumped && delta > options.heapdumpTrigger) {
dumped = true;
options.heapdumped = true;
await writeSnapshot(`hd-${this.name}-${now}-triggered.heapsnapshot`);
gc();
}

@@ -68,8 +83,9 @@ });

gc();
const end = process.memoryUsage().heapUsed - start.heapUsed;
const delta = process.memoryUsage().heapUsed - start;
if (dump) {
await writeSnapshot(`hd-${this.name}-${now}-end.heapsnapshot`);
gc();
await writeSnapshot(`hd-${this.name}-${now}-end.heapsnapshot`);
}
return { end: end, iteration: stats };
return { end: delta, delta: stats };
}

@@ -82,5 +98,5 @@

static formatStats(stats) {
var memoryStdev = Math.sqrt(stats.variance() / stats.mean) / 100;
var memoryStdev = Math.sqrt(stats.variance / stats.mean) / 100;
return `${humanize(stats.mean)} ±${memoryStdev.toFixed(1)}% (${stats.n} runs sampled)`;
}
};

@@ -41,5 +41,5 @@ var Stats = require('stats-accumulator');

var ops = stats.n / stats.mean;
var opsStdev = stats.n / Math.sqrt(stats.variance() / stats.mean) / 100;
var opsStdev = stats.n / Math.sqrt(stats.variance / stats.mean) / 100;
return `${humanize(ops)} ops/s ±${opsStdev.toFixed(1)}% (${stats.n} runs sampled)`;
}
};
{
"name": "benchmark-suite",
"version": "0.1.4",
"version": "0.1.5",
"description": "A simple suite of benchmarking tests",

@@ -5,0 +5,0 @@ "main": "index.js",

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