molstar
Version:
A comprehensive macromolecular library.
57 lines • 2.23 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.Test = void 0;
var tslib_1 = require("tslib");
var B = (0, tslib_1.__importStar)(require("benchmark"));
var string_builder_1 = require("../mol-util/string-builder");
var Test;
(function (Test) {
function createData(n) {
var ret = [];
for (var i = 0; i < n; i++) {
ret[i] = '' + ((100000000 * Math.random() + 1) | 0);
}
return ret;
}
function build(data, chunkSize) {
var sb = string_builder_1.StringBuilder.create(chunkSize);
for (var i = 0, _i = data.length; i < _i; i++) {
string_builder_1.StringBuilder.writeSafe(sb, data[i]);
string_builder_1.StringBuilder.whitespace1(sb);
}
return sb;
}
function buildWS(data, chunkSize) {
var sb = string_builder_1.StringBuilder.create(chunkSize);
for (var i = 0, _i = data.length; i < _i; i++) {
string_builder_1.StringBuilder.writeSafe(sb, data[i] + ' ');
}
return sb;
}
// function naive(data: string[]) {
// let ret = '';
// for (let i = 0, _i = data.length; i < _i; i++) ret += data[i];
// return ret;
// }
// function join(data: string[]) {
// let ret = [];
// for (let i = 0, _i = data.length; i < _i; i++) ret[i] = data[i];
// return ret.join('');
// }
function run() {
var data = createData(26 * 100000);
var N = 512;
var suite = new B.Suite();
suite
// .add(`naive`, () => naive(data))
// .add(`join`, () => join(data))
// .add(`${N} chunks`, () => SB.getChunks(build(data, N)))
.add(N + " str", function () { return string_builder_1.StringBuilder.getString(build(data, N)); })
.add(N + " str ws", function () { return string_builder_1.StringBuilder.getString(buildWS(data, N)); })
.on('cycle', function (e) { return console.log(String(e.target)); })
.run();
}
Test.run = run;
})(Test = exports.Test || (exports.Test = {}));
Test.run();
//# sourceMappingURL=string-builder.js.map
;