Files
SnowLuma/.pnpm-store/v11/files/39/e3cb19af950a524562abde7ebef825f415e97e2c32537929a46ee9944f5073e5e820c4ff148ecb234a47aeb1c6f0dcdbfa31f65a5600b1ad446eb929870452
TanTan 2a69b23b47
Dev Build / cleanup (push) Canceled after 0s
Dev Build / typecheck (push) Canceled after 0s
Dev Build / build (linux-arm64, ubuntu-24.04-arm, linux-arm64) (push) Canceled after 0s
Dev Build / build (linux-x64, ubuntu-latest, linux-x64) (push) Canceled after 0s
Dev Build / build (win-x64, windows-latest, win32-x64) (push) Canceled after 0s
Dev Build / dispatch-dev-docker (push) Canceled after 0s
docs: 仓库链接指向本镜像仓库
2026-11-13 09:27:07 +08:00

97 lines
3.1 KiB
Plaintext

"use strict";
exports.__esModule = true;
/* eslint-disable @typescript-eslint/no-var-requires */
/* eslint-disable no-console */
var Benchmark = require("benchmark");
var mod_js_1 = require("./mod.js");
var fast_levenshtein_1 = require("fast-levenshtein");
var fs = require("fs");
var jslevenshtein = require("js-levenshtein");
var leven = require("leven");
var levenshteinEditDistance = require("levenshtein-edit-distance");
var suite = new Benchmark.Suite();
var randomstring = function (length) {
var result = "";
var characters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
var charactersLength = characters.length;
for (var i = 0; i < length; i++) {
result += characters.charAt(Math.floor(Math.random() * charactersLength));
}
return result;
};
var randomstringArr = function (stringSize, arraySize) {
var i = 0;
var arr = [];
for (i = 0; i < arraySize; i++) {
arr.push(randomstring(stringSize));
}
return arr;
};
var arrSize = 1000;
if (!fs.existsSync("data.json")) {
var data_1 = [
randomstringArr(4, arrSize),
randomstringArr(8, arrSize),
randomstringArr(16, arrSize),
randomstringArr(32, arrSize),
randomstringArr(64, arrSize),
randomstringArr(128, arrSize),
randomstringArr(256, arrSize),
randomstringArr(512, arrSize),
randomstringArr(1024, arrSize),
];
fs.writeFileSync("data.json", JSON.stringify(data_1));
}
var data = JSON.parse(fs.readFileSync("data.json", "utf8"));
var _loop_1 = function (i) {
var datapick = data[i];
if (process.argv[2] !== "no") {
suite
.add("".concat(i, " - js-levenshtein"), function () {
for (var j = 0; j < arrSize - 1; j += 2) {
jslevenshtein(datapick[j], datapick[j + 1]);
}
})
.add("".concat(i, " - leven"), function () {
for (var j = 0; j < arrSize - 1; j += 2) {
leven(datapick[j], datapick[j + 1]);
}
})
.add("".concat(i, " - fast-levenshtein"), function () {
for (var j = 0; j < arrSize - 1; j += 2) {
(0, fast_levenshtein_1.get)(datapick[j], datapick[j + 1]);
}
})
.add("".concat(i, " - levenshtein-edit-distance"), function () {
for (var j = 0; j < arrSize - 1; j += 2) {
levenshteinEditDistance(datapick[j], datapick[j + 1]);
}
});
}
suite.add("".concat(i, " - fastest-levenshtein"), function () {
for (var j = 0; j < arrSize - 1; j += 2) {
(0, mod_js_1.distance)(datapick[j], datapick[j + 1]);
}
});
};
// BENCHMARKS
for (var i = 0; i < 9; i++) {
_loop_1(i);
}
var results = new Map();
suite
.on("cycle", function (event) {
console.log(String(event.target));
if (results.has(event.target.name[0])) {
results.get(event.target.name[0]).push(event.target.hz);
}
else {
results.set(event.target.name[0], [event.target.hz]);
}
})
.on("complete", function () {
console.log(results);
})
// run async
.run({ async: true });