Updated the files.

This commit is contained in:
Batuhan Berk Başoğlu 2024-02-08 19:38:41 -05:00
parent 1553e6b971
commit 753967d4f5
23418 changed files with 3784666 additions and 0 deletions

View file

@ -0,0 +1 @@
export {};

View file

@ -0,0 +1,57 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const benny_1 = require("benny");
const index_1 = require("../index");
const wasm_1 = require("../wasm");
wasm_1.initWebAssembly().then(() => {
const randomInteger = (max = Number.MAX_SAFE_INTEGER) => Math.floor(Math.random() * max);
const options = { initCount: 1000 };
benny_1.default.suite("Histogram add", benny_1.default.add("Int32Histogram", () => {
const histogram = index_1.build();
const histogram2 = index_1.build();
for (let index = 0; index < 1024; index++) {
histogram.recordValueWithCount(randomInteger(), randomInteger(100));
histogram2.recordValueWithCount(randomInteger(), randomInteger(100));
}
return () => {
histogram.add(histogram2);
};
}, options), benny_1.default.add("WASM 32B Histogram", () => {
const histogram = index_1.build({ useWebAssembly: true });
const histogram2 = index_1.build({ useWebAssembly: true });
for (let index = 0; index < 1024; index++) {
histogram.recordValueWithCount(randomInteger(), randomInteger(100));
histogram2.recordValueWithCount(randomInteger(), randomInteger(100));
}
return () => {
histogram.add(histogram2);
};
}, options), benny_1.default.add("Packed Histogram", () => {
const histogram = index_1.build({ bitBucketSize: "packed" });
const histogram2 = index_1.build({ bitBucketSize: "packed" });
for (let index = 0; index < 1024; index++) {
histogram.recordValueWithCount(randomInteger(), randomInteger(100));
histogram2.recordValueWithCount(randomInteger(), randomInteger(100));
}
return () => {
histogram.add(histogram2);
};
}, options), benny_1.default.add("WASM Packed Histogram", () => {
const histogram = index_1.build({
bitBucketSize: "packed",
useWebAssembly: true
});
const histogram2 = index_1.build({
bitBucketSize: "packed",
useWebAssembly: true
});
for (let index = 0; index < 1024; index++) {
histogram.recordValueWithCount(randomInteger(), randomInteger(100));
histogram2.recordValueWithCount(randomInteger(), randomInteger(100));
}
return () => {
histogram.add(histogram2);
};
}, options), benny_1.default.complete(), benny_1.default.save({ file: "add", format: "chart.html" }));
});
//# sourceMappingURL=histogram-add.js.map

View file

@ -0,0 +1 @@
{"version":3,"file":"histogram-add.js","sourceRoot":"","sources":["../../src/bench/histogram-add.ts"],"names":[],"mappings":"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"}

View file

@ -0,0 +1 @@
export {};

View file

@ -0,0 +1,62 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const benny_1 = require("benny");
const index_1 = require("../index");
const wasm_1 = require("../wasm");
wasm_1.initWebAssembly().then(() => {
const randomInteger = () => Math.floor(Math.random() * 1000000);
const randomSmallInteger = () => Math.floor(Math.random() * 1000);
const options = { initCount: 1000 };
benny_1.default.suite("Histogram data access with coordinated ommissions", benny_1.default.add("Int32Histogram", () => {
const histogram = index_1.build({ bitBucketSize: 32 });
return () => {
histogram.recordValueWithExpectedInterval(randomInteger(), 100000);
};
}, options), benny_1.default.add("Int32Histogram no correction needed", () => {
const histogram = index_1.build({ bitBucketSize: 32 });
return () => {
histogram.recordValueWithExpectedInterval(randomSmallInteger(), 100000);
};
}, options), benny_1.default.add("PackedHistogram", () => {
const histogram = index_1.build({ bitBucketSize: "packed" });
return () => {
histogram.recordValueWithExpectedInterval(randomInteger(), 100000);
};
}, options), benny_1.default.add("PackedHistogram no correction needed", () => {
const histogram = index_1.build({ bitBucketSize: "packed" });
return () => {
histogram.recordValueWithExpectedInterval(randomSmallInteger(), 100000);
};
}, options), benny_1.default.add("WASM Int32Histogram", () => {
const histogram = index_1.build({
useWebAssembly: true
});
return () => {
histogram.recordValueWithExpectedInterval(randomInteger(), 100000);
};
}, options), benny_1.default.add("WASM Int32Histogram no correction needed", () => {
const histogram = index_1.build({
useWebAssembly: true
});
return () => {
histogram.recordValueWithExpectedInterval(randomSmallInteger(), 100000);
};
}, options), benny_1.default.add("WASM PackedHistogram", () => {
const histogram = index_1.build({
useWebAssembly: true,
bitBucketSize: "packed"
});
return () => {
histogram.recordValueWithExpectedInterval(randomInteger(), 100000);
};
}, options), benny_1.default.add("WASM PackedHistogram no correction needed", () => {
const histogram = index_1.build({
useWebAssembly: true,
bitBucketSize: "packed"
});
return () => {
histogram.recordValueWithExpectedInterval(randomSmallInteger(), 100000);
};
}, options), benny_1.default.complete(), benny_1.default.save({ file: "data-access-co", format: "chart.html" }));
});
//# sourceMappingURL=histogram-data-access-co.js.map

View file

@ -0,0 +1 @@
{"version":3,"file":"histogram-data-access-co.js","sourceRoot":"","sources":["../../src/bench/histogram-data-access-co.ts"],"names":[],"mappings":"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"}

View file

@ -0,0 +1 @@
export {};

View file

@ -0,0 +1,56 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const benny_1 = require("benny");
const index_1 = require("../index");
const wasm_1 = require("../wasm");
wasm_1.initWebAssembly().then(() => {
const randomInteger = () => Math.floor(Math.random() * Number.MAX_SAFE_INTEGER);
const options = { initCount: 1000 };
benny_1.default.suite("Histogram data access", benny_1.default.add("Int32Histogram", () => {
const histogram = index_1.build({ bitBucketSize: 32 });
return () => {
histogram.recordValue(randomInteger());
};
}, options), benny_1.default.add("PackedHistogram", () => {
const histogram = index_1.build({ bitBucketSize: "packed" });
return () => {
histogram.recordValue(randomInteger());
};
}, options), benny_1.default.add("Float64Histogram", () => {
const histogram = index_1.build({ bitBucketSize: 64 });
return () => {
histogram.recordValue(randomInteger());
};
}, options), benny_1.default.add("Int32Histogram eager allocation", () => {
const histogram = index_1.build({
bitBucketSize: 32,
highestTrackableValue: Number.MAX_SAFE_INTEGER
});
return () => {
histogram.recordValue(randomInteger());
};
}, options), benny_1.default.add("WASM Int32Histogram", () => {
const histogram = index_1.build({
useWebAssembly: true
});
return () => {
histogram.recordValue(randomInteger());
};
}, options), benny_1.default.add("WASM PackedHistogram", () => {
const histogram = index_1.build({
useWebAssembly: true
});
return () => {
histogram.recordValue(randomInteger());
};
}, options), benny_1.default.add("Float64Histogram eager allocation", () => {
const histogram = index_1.build({
bitBucketSize: 64,
highestTrackableValue: Number.MAX_SAFE_INTEGER
});
return () => {
histogram.recordValue(randomInteger());
};
}, options), benny_1.default.complete(), benny_1.default.save({ file: "data-access", format: "chart.html" }));
});
//# sourceMappingURL=histogram-data-access.js.map

View file

@ -0,0 +1 @@
{"version":3,"file":"histogram-data-access.js","sourceRoot":"","sources":["../../src/bench/histogram-data-access.ts"],"names":[],"mappings":"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"}

View file

@ -0,0 +1 @@
export {};

View file

@ -0,0 +1,53 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const benny_1 = require("benny");
const index_1 = require("../index");
const encoding_1 = require("../encoding");
const wasm_1 = require("../wasm");
wasm_1.initWebAssembly().then(() => {
const randomInteger = (max = Number.MAX_SAFE_INTEGER) => Math.floor(Math.random() * max);
const options = { initCount: 1000 };
benny_1.default.suite("Histogram decoding", benny_1.default.add("Int32Histogram", () => {
const histogram = index_1.build();
for (let index = 0; index < 1024; index++) {
histogram.recordValueWithCount(randomInteger(), randomInteger(100));
}
const b64 = encoding_1.encodeIntoCompressedBase64(histogram);
return () => {
encoding_1.decodeFromCompressedBase64(b64, 32, false).destroy();
};
}, options), benny_1.default.add("WASM 32B Histogram", () => {
const histogram = index_1.build();
for (let index = 0; index < 1024; index++) {
histogram.recordValueWithCount(randomInteger(), randomInteger(100));
}
const b64 = encoding_1.encodeIntoCompressedBase64(histogram);
histogram.destroy();
return () => {
encoding_1.decodeFromCompressedBase64(b64, 32, true).destroy();
};
}, options), benny_1.default.add("Packed Histogram", () => {
const histogram = index_1.build();
for (let index = 0; index < 1024; index++) {
histogram.recordValueWithCount(randomInteger(), randomInteger(100));
}
const b64 = encoding_1.encodeIntoCompressedBase64(histogram);
return () => {
encoding_1.decodeFromCompressedBase64(b64, "packed", false).destroy();
};
}, options), benny_1.default.add("WASM Packed Histogram", () => {
const histogram = index_1.build({
bitBucketSize: "packed",
useWebAssembly: true
});
for (let index = 0; index < 1024; index++) {
histogram.recordValueWithCount(randomInteger(), randomInteger(100));
}
const b64 = encoding_1.encodeIntoCompressedBase64(histogram);
histogram.destroy();
return () => {
encoding_1.decodeFromCompressedBase64(b64, "packed", true).destroy();
};
}, options), benny_1.default.complete(), benny_1.default.save({ file: "decoding", format: "chart.html" }));
});
//# sourceMappingURL=histogram-decoding.js.map

View file

@ -0,0 +1 @@
{"version":3,"file":"histogram-decoding.js","sourceRoot":"","sources":["../../src/bench/histogram-decoding.ts"],"names":[],"mappings":"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"}

View file

@ -0,0 +1 @@
export {};

View file

@ -0,0 +1,53 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const benny_1 = require("benny");
const index_1 = require("../index");
const wasm_1 = require("../wasm");
wasm_1.initWebAssembly().then(() => {
const randomInteger = (max = Number.MAX_SAFE_INTEGER) => Math.floor(Math.random() * max);
const options = { initCount: 100 };
benny_1.default.suite("Histogram percentile distribution", benny_1.default.add("Int32Histogram", () => {
const histogram = index_1.build({
bitBucketSize: 32
});
for (let index = 0; index < 1024; index++) {
histogram.recordValueWithCount(randomInteger(), randomInteger(100));
}
return () => {
histogram.outputPercentileDistribution();
};
}, options), benny_1.default.add("WASM 32B Histogram", () => {
const histogram = index_1.build({
bitBucketSize: 32,
useWebAssembly: true
});
for (let index = 0; index < 1024; index++) {
histogram.recordValueWithCount(randomInteger(), randomInteger(100));
}
return () => {
histogram.outputPercentileDistribution();
};
}, options), benny_1.default.add("Packed Histogram", () => {
const histogram = index_1.build({
bitBucketSize: "packed"
});
for (let index = 0; index < 1024; index++) {
histogram.recordValueWithCount(randomInteger(), randomInteger(100));
}
return () => {
histogram.outputPercentileDistribution();
};
}, options), benny_1.default.add("WASM Packed Histogram", () => {
const histogram = index_1.build({
bitBucketSize: "packed",
useWebAssembly: true
});
for (let index = 0; index < 1024; index++) {
histogram.recordValueWithCount(randomInteger(), randomInteger(100));
}
return () => {
histogram.outputPercentileDistribution();
};
}, options), benny_1.default.complete(), benny_1.default.save({ file: "distribution", format: "chart.html" }));
});
//# sourceMappingURL=histogram-distribution.js.map

View file

@ -0,0 +1 @@
{"version":3,"file":"histogram-distribution.js","sourceRoot":"","sources":["../../src/bench/histogram-distribution.ts"],"names":[],"mappings":";;AAAA,iCAAsB;AACtB,oCAAiC;AACjC,kCAA0C;AAC1C,sBAAe,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;IAC1B,MAAM,aAAa,GAAG,CAAC,MAAc,MAAM,CAAC,gBAAgB,EAAE,EAAE,CAC9D,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC;IAClC,MAAM,OAAO,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC;IAEnC,eAAC,CAAC,KAAK,CACL,mCAAmC,EACnC,eAAC,CAAC,GAAG,CACH,gBAAgB,EAChB,GAAG,EAAE;QACH,MAAM,SAAS,GAAG,aAAK,CAAC;YACtB,aAAa,EAAE,EAAE;SAClB,CAAC,CAAC;QACH,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,EAAE,EAAE;YACzC,SAAS,CAAC,oBAAoB,CAAC,aAAa,EAAE,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;SACrE;QACD,OAAO,GAAG,EAAE;YACV,SAAS,CAAC,4BAA4B,EAAE,CAAC;QAC3C,CAAC,CAAC;IACJ,CAAC,EACD,OAAO,CACR,EAED,eAAC,CAAC,GAAG,CACH,oBAAoB,EACpB,GAAG,EAAE;QACH,MAAM,SAAS,GAAG,aAAK,CAAC;YACtB,aAAa,EAAE,EAAE;YACjB,cAAc,EAAE,IAAI;SACrB,CAAC,CAAC;QACH,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,EAAE,EAAE;YACzC,SAAS,CAAC,oBAAoB,CAAC,aAAa,EAAE,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;SACrE;QACD,OAAO,GAAG,EAAE;YACV,SAAS,CAAC,4BAA4B,EAAE,CAAC;QAC3C,CAAC,CAAC;IACJ,CAAC,EACD,OAAO,CACR,EACD,eAAC,CAAC,GAAG,CACH,kBAAkB,EAClB,GAAG,EAAE;QACH,MAAM,SAAS,GAAG,aAAK,CAAC;YACtB,aAAa,EAAE,QAAQ;SACxB,CAAC,CAAC;QACH,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,EAAE,EAAE;YACzC,SAAS,CAAC,oBAAoB,CAAC,aAAa,EAAE,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;SACrE;QACD,OAAO,GAAG,EAAE;YACV,SAAS,CAAC,4BAA4B,EAAE,CAAC;QAC3C,CAAC,CAAC;IACJ,CAAC,EACD,OAAO,CACR,EACD,eAAC,CAAC,GAAG,CACH,uBAAuB,EACvB,GAAG,EAAE;QACH,MAAM,SAAS,GAAG,aAAK,CAAC;YACtB,aAAa,EAAE,QAAQ;YACvB,cAAc,EAAE,IAAI;SACrB,CAAC,CAAC;QACH,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,EAAE,EAAE;YACzC,SAAS,CAAC,oBAAoB,CAAC,aAAa,EAAE,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;SACrE;QACD,OAAO,GAAG,EAAE;YACV,SAAS,CAAC,4BAA4B,EAAE,CAAC;QAC3C,CAAC,CAAC;IACJ,CAAC,EACD,OAAO,CACR,EAED,eAAC,CAAC,QAAQ,EAAE,EACZ,eAAC,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CACvD,CAAC;AACJ,CAAC,CAAC,CAAC"}

View file

@ -0,0 +1 @@
export {};

View file

@ -0,0 +1,54 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const benny_1 = require("benny");
const index_1 = require("../index");
const wasm_1 = require("../wasm");
const Histogram_1 = require("../Histogram");
wasm_1.initWebAssembly().then(() => {
const randomInteger = (max = Number.MAX_SAFE_INTEGER) => Math.floor(Math.random() * max);
const options = { initCount: 100 };
benny_1.default.suite("Histogram toJSON()", benny_1.default.add("JS 32B Histogram", () => {
const histogram = index_1.build({
bitBucketSize: 32
});
for (let index = 0; index < 1024; index++) {
histogram.recordValueWithCount(randomInteger(), randomInteger(100));
}
return () => {
Histogram_1.toSummary(histogram);
};
}, options), benny_1.default.add("WASM 32B Histogram", () => {
const histogram = index_1.build({
bitBucketSize: 32,
useWebAssembly: true
});
for (let index = 0; index < 1024; index++) {
histogram.recordValueWithCount(randomInteger(), randomInteger(100));
}
return () => {
Histogram_1.toSummary(histogram);
};
}, options), benny_1.default.add("Packed Histogram", () => {
const histogram = index_1.build({
bitBucketSize: "packed"
});
for (let index = 0; index < 1024; index++) {
histogram.recordValueWithCount(randomInteger(), randomInteger(100));
}
return () => {
Histogram_1.toSummary(histogram);
};
}, options), benny_1.default.add("WASM Packed Histogram", () => {
const histogram = index_1.build({
bitBucketSize: "packed",
useWebAssembly: true
});
for (let index = 0; index < 1024; index++) {
histogram.recordValueWithCount(randomInteger(), randomInteger(100));
}
return () => {
Histogram_1.toSummary(histogram);
};
}, options), benny_1.default.complete(), benny_1.default.save({ file: "json-percentile", format: "chart.html" }));
});
//# sourceMappingURL=histogram-json-percentile.js.map

View file

@ -0,0 +1 @@
{"version":3,"file":"histogram-json-percentile.js","sourceRoot":"","sources":["../../src/bench/histogram-json-percentile.ts"],"names":[],"mappings":";;AAAA,iCAAsB;AACtB,oCAAiC;AACjC,kCAA0C;AAC1C,4CAAyC;AACzC,sBAAe,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;IAC1B,MAAM,aAAa,GAAG,CAAC,MAAc,MAAM,CAAC,gBAAgB,EAAE,EAAE,CAC9D,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC;IAClC,MAAM,OAAO,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC;IAEnC,eAAC,CAAC,KAAK,CACL,oBAAoB,EACpB,eAAC,CAAC,GAAG,CACH,kBAAkB,EAClB,GAAG,EAAE;QACH,MAAM,SAAS,GAAG,aAAK,CAAC;YACtB,aAAa,EAAE,EAAE;SAClB,CAAC,CAAC;QACH,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,EAAE,EAAE;YACzC,SAAS,CAAC,oBAAoB,CAAC,aAAa,EAAE,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;SACrE;QACD,OAAO,GAAG,EAAE;YACV,qBAAS,CAAC,SAAS,CAAC,CAAC;QACvB,CAAC,CAAC;IACJ,CAAC,EACD,OAAO,CACR,EAED,eAAC,CAAC,GAAG,CACH,oBAAoB,EACpB,GAAG,EAAE;QACH,MAAM,SAAS,GAAG,aAAK,CAAC;YACtB,aAAa,EAAE,EAAE;YACjB,cAAc,EAAE,IAAI;SACrB,CAAC,CAAC;QACH,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,EAAE,EAAE;YACzC,SAAS,CAAC,oBAAoB,CAAC,aAAa,EAAE,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;SACrE;QACD,OAAO,GAAG,EAAE;YACV,qBAAS,CAAC,SAAS,CAAC,CAAC;QACvB,CAAC,CAAC;IACJ,CAAC,EACD,OAAO,CACR,EACD,eAAC,CAAC,GAAG,CACH,kBAAkB,EAClB,GAAG,EAAE;QACH,MAAM,SAAS,GAAG,aAAK,CAAC;YACtB,aAAa,EAAE,QAAQ;SACxB,CAAC,CAAC;QACH,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,EAAE,EAAE;YACzC,SAAS,CAAC,oBAAoB,CAAC,aAAa,EAAE,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;SACrE;QACD,OAAO,GAAG,EAAE;YACV,qBAAS,CAAC,SAAS,CAAC,CAAC;QACvB,CAAC,CAAC;IACJ,CAAC,EACD,OAAO,CACR,EACD,eAAC,CAAC,GAAG,CACH,uBAAuB,EACvB,GAAG,EAAE;QACH,MAAM,SAAS,GAAG,aAAK,CAAC;YACtB,aAAa,EAAE,QAAQ;YACvB,cAAc,EAAE,IAAI;SACrB,CAAC,CAAC;QACH,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,EAAE,EAAE;YACzC,SAAS,CAAC,oBAAoB,CAAC,aAAa,EAAE,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;SACrE;QACD,OAAO,GAAG,EAAE;YACV,qBAAS,CAAC,SAAS,CAAC,CAAC;QACvB,CAAC,CAAC;IACJ,CAAC,EACD,OAAO,CACR,EAED,eAAC,CAAC,QAAQ,EAAE,EACZ,eAAC,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAC1D,CAAC;AACJ,CAAC,CAAC,CAAC"}

View file

@ -0,0 +1 @@
export {};

View file

@ -0,0 +1,53 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const benny_1 = require("benny");
const index_1 = require("../index");
const wasm_1 = require("../wasm");
wasm_1.initWebAssembly().then(() => {
const randomInteger = (max = Number.MAX_SAFE_INTEGER) => Math.floor(Math.random() * max);
const options = { initCount: 1000 };
benny_1.default.suite("Histogram get value at percentile", benny_1.default.add("Int32Histogram", () => {
const histogram = index_1.build({
bitBucketSize: 32
});
for (let index = 0; index < 1024; index++) {
histogram.recordValueWithCount(randomInteger(), randomInteger(100));
}
return () => {
histogram.getValueAtPercentile(99);
};
}, options), benny_1.default.add("WASM 32B Histogram", () => {
const histogram = index_1.build({
bitBucketSize: 32,
useWebAssembly: true
});
for (let index = 0; index < 1024; index++) {
histogram.recordValueWithCount(randomInteger(), randomInteger(100));
}
return () => {
histogram.getValueAtPercentile(99);
};
}, options), benny_1.default.add("Packed Histogram", () => {
const histogram = index_1.build({
bitBucketSize: "packed"
});
for (let index = 0; index < 1024; index++) {
histogram.recordValueWithCount(randomInteger(), randomInteger(100));
}
return () => {
histogram.getValueAtPercentile(99);
};
}, options), benny_1.default.add("WASM Packed Histogram", () => {
const histogram = index_1.build({
bitBucketSize: "packed",
useWebAssembly: true
});
for (let index = 0; index < 1024; index++) {
histogram.recordValueWithCount(randomInteger(), randomInteger(100));
}
return () => {
histogram.getValueAtPercentile(99);
};
}, options), benny_1.default.complete(), benny_1.default.save({ file: "percentile", format: "chart.html" }));
});
//# sourceMappingURL=histogram-percentile.js.map

View file

@ -0,0 +1 @@
{"version":3,"file":"histogram-percentile.js","sourceRoot":"","sources":["../../src/bench/histogram-percentile.ts"],"names":[],"mappings":";;AAAA,iCAAsB;AACtB,oCAAiC;AACjC,kCAA0C;AAC1C,sBAAe,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;IAC1B,MAAM,aAAa,GAAG,CAAC,MAAc,MAAM,CAAC,gBAAgB,EAAE,EAAE,CAC9D,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC;IAClC,MAAM,OAAO,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;IAEpC,eAAC,CAAC,KAAK,CACL,mCAAmC,EACnC,eAAC,CAAC,GAAG,CACH,gBAAgB,EAChB,GAAG,EAAE;QACH,MAAM,SAAS,GAAG,aAAK,CAAC;YACtB,aAAa,EAAE,EAAE;SAClB,CAAC,CAAC;QACH,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,EAAE,EAAE;YACzC,SAAS,CAAC,oBAAoB,CAAC,aAAa,EAAE,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;SACrE;QACD,OAAO,GAAG,EAAE;YACV,SAAS,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC;QACrC,CAAC,CAAC;IACJ,CAAC,EACD,OAAO,CACR,EAED,eAAC,CAAC,GAAG,CACH,oBAAoB,EACpB,GAAG,EAAE;QACH,MAAM,SAAS,GAAG,aAAK,CAAC;YACtB,aAAa,EAAE,EAAE;YACjB,cAAc,EAAE,IAAI;SACrB,CAAC,CAAC;QACH,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,EAAE,EAAE;YACzC,SAAS,CAAC,oBAAoB,CAAC,aAAa,EAAE,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;SACrE;QACD,OAAO,GAAG,EAAE;YACV,SAAS,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC;QACrC,CAAC,CAAC;IACJ,CAAC,EACD,OAAO,CACR,EACD,eAAC,CAAC,GAAG,CACH,kBAAkB,EAClB,GAAG,EAAE;QACH,MAAM,SAAS,GAAG,aAAK,CAAC;YACtB,aAAa,EAAE,QAAQ;SACxB,CAAC,CAAC;QACH,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,EAAE,EAAE;YACzC,SAAS,CAAC,oBAAoB,CAAC,aAAa,EAAE,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;SACrE;QACD,OAAO,GAAG,EAAE;YACV,SAAS,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC;QACrC,CAAC,CAAC;IACJ,CAAC,EACD,OAAO,CACR,EACD,eAAC,CAAC,GAAG,CACH,uBAAuB,EACvB,GAAG,EAAE;QACH,MAAM,SAAS,GAAG,aAAK,CAAC;YACtB,aAAa,EAAE,QAAQ;YACvB,cAAc,EAAE,IAAI;SACrB,CAAC,CAAC;QACH,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,EAAE,EAAE;YACzC,SAAS,CAAC,oBAAoB,CAAC,aAAa,EAAE,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;SACrE;QACD,OAAO,GAAG,EAAE;YACV,SAAS,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC;QACrC,CAAC,CAAC;IACJ,CAAC,EACD,OAAO,CACR,EAED,eAAC,CAAC,QAAQ,EAAE,EACZ,eAAC,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CACrD,CAAC;AACJ,CAAC,CAAC,CAAC"}