mirror of
https://git.stamm.me/OpenServer/NodeLogging.git
synced 2024-11-15 02:11:04 +00:00
Adding nodes hrtimer to new time and timeEnd
This commit is contained in:
parent
922af328a3
commit
c5098934a1
68
package-lock.json
generated
68
package-lock.json
generated
@ -5,9 +5,9 @@
|
|||||||
"requires": true,
|
"requires": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@hibas123/logging": {
|
"@hibas123/logging": {
|
||||||
"version": "2.1.5",
|
"version": "2.2.2",
|
||||||
"resolved": "https://registry.npmjs.org/@hibas123/logging/-/logging-2.1.5.tgz",
|
"resolved": "https://registry.npmjs.org/@hibas123/logging/-/logging-2.2.2.tgz",
|
||||||
"integrity": "sha512-sZ+BVepmWz8AmRXd1J4i9Ut+XxpkUwjfC0zx3gYDQhRElPg56+vGTm1AUwBxiYmAqz8L6hTz62OVF1PFetXyqw==",
|
"integrity": "sha512-45ajce5iFAKIYK74VfNVWtUCkk3nXSV2pCrnY7edszPrME8HWgrrkHMxc4yo3cIBpZNP9WN3O2TnDseasCvcjw==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"@hibas123/utils": "^2.2.3"
|
"@hibas123/utils": "^2.2.3"
|
||||||
}
|
}
|
||||||
@ -18,9 +18,9 @@
|
|||||||
"integrity": "sha512-yAywWMDbt5fmid9E7IRXeCazdbwfC339LhRFIryXab0FqlQzUrm8ggdJaSzWXYC7m3ijdekSezlBno/vOL/L2Q=="
|
"integrity": "sha512-yAywWMDbt5fmid9E7IRXeCazdbwfC339LhRFIryXab0FqlQzUrm8ggdJaSzWXYC7m3ijdekSezlBno/vOL/L2Q=="
|
||||||
},
|
},
|
||||||
"@types/node": {
|
"@types/node": {
|
||||||
"version": "13.7.7",
|
"version": "13.11.0",
|
||||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-13.7.7.tgz",
|
"resolved": "https://registry.npmjs.org/@types/node/-/node-13.11.0.tgz",
|
||||||
"integrity": "sha512-Uo4chgKbnPNlxQwoFmYIwctkQVkMMmsAoGGU4JKwLuvBefF0pCq4FybNSnfkfRCpC7ZW7kttcC/TrRtAJsvGtg==",
|
"integrity": "sha512-uM4mnmsIIPK/yeO+42F2RQhGUIs39K2RFmugcJANppXe6J1nvH87PvzPZYpza7Xhhs8Yn9yIAVdLZ84z61+0xQ==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"abbrev": {
|
"abbrev": {
|
||||||
@ -321,9 +321,9 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"date-fns": {
|
"date-fns": {
|
||||||
"version": "2.10.0",
|
"version": "2.11.1",
|
||||||
"resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.10.0.tgz",
|
"resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.11.1.tgz",
|
||||||
"integrity": "sha512-EhfEKevYGWhWlZbNeplfhIU/+N+x0iCIx7VzKlXma2EdQyznVlZhCptXUY+BegNpPW2kjdx15Rvq503YcXXrcA==",
|
"integrity": "sha512-3RdUoinZ43URd2MJcquzBbDQo+J87cSzB8NkXdZiN5ia1UNyep0oCyitfiL88+R7clGTeq/RniXAc16gWyAu1w==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"debug": {
|
"debug": {
|
||||||
@ -436,9 +436,9 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"glob-parent": {
|
"glob-parent": {
|
||||||
"version": "5.1.0",
|
"version": "5.1.1",
|
||||||
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz",
|
||||||
"integrity": "sha512-qjtRgnIVmOfnKUE3NJAQEdk+lKrxfw8t5ke7SXtfMTHcjsBfOfWXCQfdb30zfDoZQ2IRSIiidmjtbHZPZ++Ihw==",
|
"integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"is-glob": "^4.0.1"
|
"is-glob": "^4.0.1"
|
||||||
@ -686,9 +686,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"minimist": {
|
"minimist": {
|
||||||
"version": "1.2.0",
|
"version": "1.2.5",
|
||||||
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
|
||||||
"integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
|
"integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"ms": {
|
"ms": {
|
||||||
@ -769,9 +769,9 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"p-limit": {
|
"p-limit": {
|
||||||
"version": "2.2.2",
|
"version": "2.3.0",
|
||||||
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz",
|
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
|
||||||
"integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==",
|
"integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"p-try": "^2.0.0"
|
"p-try": "^2.0.0"
|
||||||
@ -839,9 +839,9 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"picomatch": {
|
"picomatch": {
|
||||||
"version": "2.2.1",
|
"version": "2.2.2",
|
||||||
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.1.tgz",
|
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz",
|
||||||
"integrity": "sha512-ISBaA8xQNmwELC7eOjqFKMESB2VIqt4PPDD0nsS95b/9dZXvVKOlz9keMSnoGGKcOHXfTvDD6WMaRoSc9UuhRA==",
|
"integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"pify": {
|
"pify": {
|
||||||
@ -941,9 +941,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"rxjs": {
|
"rxjs": {
|
||||||
"version": "6.5.4",
|
"version": "6.5.5",
|
||||||
"resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.4.tgz",
|
"resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.5.tgz",
|
||||||
"integrity": "sha512-naMQXcgEo3csAEGvw/NydRA0fuS2nDZJiw1YUWFKU7aPPAPGZEsD4Iimit96qwCieH6y614MCLYwdkrWx7z/7Q==",
|
"integrity": "sha512-WfQI+1gohdf0Dai/Bbmk5L5ItH5tYqm3ki2c5GdWhKjalzjg93N3avFjVStyZZz+A2Em+ZxKH5bNghw9UeylGQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"tslib": "^1.9.0"
|
"tslib": "^1.9.0"
|
||||||
@ -992,9 +992,9 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"signal-exit": {
|
"signal-exit": {
|
||||||
"version": "3.0.2",
|
"version": "3.0.3",
|
||||||
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz",
|
||||||
"integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=",
|
"integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"spawn-command": {
|
"spawn-command": {
|
||||||
@ -1297,9 +1297,9 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"yargs": {
|
"yargs": {
|
||||||
"version": "13.3.0",
|
"version": "13.3.2",
|
||||||
"resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.0.tgz",
|
"resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz",
|
||||||
"integrity": "sha512-2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA==",
|
"integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"cliui": "^5.0.0",
|
"cliui": "^5.0.0",
|
||||||
@ -1311,13 +1311,13 @@
|
|||||||
"string-width": "^3.0.0",
|
"string-width": "^3.0.0",
|
||||||
"which-module": "^2.0.0",
|
"which-module": "^2.0.0",
|
||||||
"y18n": "^4.0.0",
|
"y18n": "^4.0.0",
|
||||||
"yargs-parser": "^13.1.1"
|
"yargs-parser": "^13.1.2"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"yargs-parser": {
|
"yargs-parser": {
|
||||||
"version": "13.1.1",
|
"version": "13.1.2",
|
||||||
"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz",
|
||||||
"integrity": "sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ==",
|
"integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"camelcase": "^5.0.0",
|
"camelcase": "^5.0.0",
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@hibas123/nodelogging",
|
"name": "@hibas123/nodelogging",
|
||||||
"version": "2.1.5",
|
"version": "2.2.2",
|
||||||
"description": "",
|
"description": "",
|
||||||
"main": "out/index.js",
|
"main": "out/index.js",
|
||||||
"types": "out/index.d.ts",
|
"types": "out/index.d.ts",
|
||||||
@ -26,13 +26,13 @@
|
|||||||
"readme.md"
|
"readme.md"
|
||||||
],
|
],
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/node": "^13.7.7",
|
"@types/node": "^13.11.0",
|
||||||
"concurrently": "^5.1.0",
|
"concurrently": "^5.1.0",
|
||||||
"nodemon": "^2.0.2",
|
"nodemon": "^2.0.2",
|
||||||
"typescript": "^3.8.3"
|
"typescript": "^3.8.3"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@hibas123/logging": "^2.1.5",
|
"@hibas123/logging": "^2.2.2",
|
||||||
"@hibas123/utils": "^2.2.3"
|
"@hibas123/utils": "^2.2.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
40
src/index.ts
40
src/index.ts
@ -1,10 +1,14 @@
|
|||||||
export { LoggingFiles } from "./filewriter";
|
export { LoggingFiles } from "./filewriter";
|
||||||
import { LoggingFiles } from "./filewriter";
|
import { LoggingFiles } from "./filewriter";
|
||||||
import { LoggingBase as LoggingBaseOriginal, LoggingBaseOptions } from "@hibas123/logging";
|
import {
|
||||||
|
LoggingBase as LoggingBaseOriginal,
|
||||||
|
LoggingBaseOptions,
|
||||||
|
} from "@hibas123/logging";
|
||||||
|
|
||||||
export interface LoggingOptions extends LoggingBaseOptions {
|
export interface LoggingOptions extends LoggingBaseOptions {
|
||||||
files: boolean | {
|
files:
|
||||||
|
| boolean
|
||||||
|
| {
|
||||||
/**
|
/**
|
||||||
* Filename/path of the logfile. Skip if generated with name.
|
* Filename/path of the logfile. Skip if generated with name.
|
||||||
*
|
*
|
||||||
@ -17,7 +21,7 @@ export interface LoggingOptions extends LoggingBaseOptions {
|
|||||||
* If not wanted pass null
|
* If not wanted pass null
|
||||||
*/
|
*/
|
||||||
errorfile?: string | null;
|
errorfile?: string | null;
|
||||||
}
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
export class LoggingBase extends LoggingBaseOriginal {
|
export class LoggingBase extends LoggingBaseOriginal {
|
||||||
@ -33,17 +37,30 @@ export class LoggingBase extends LoggingBaseOriginal {
|
|||||||
}
|
}
|
||||||
|
|
||||||
let name = this.name ? "." + this.name : "";
|
let name = this.name ? "." + this.name : "";
|
||||||
if (!logfile && logfile !== null)
|
if (!logfile && logfile !== null) logfile = `./logs/all${name}.log`;
|
||||||
logfile = `./logs/all${name}.log`;
|
|
||||||
if (!errorfile && errorfile !== null)
|
if (!errorfile && errorfile !== null)
|
||||||
errorfile = `./logs/error${name}.log`;
|
errorfile = `./logs/error${name}.log`;
|
||||||
|
|
||||||
if (logfile)
|
if (logfile) this.addAdapter(new LoggingFiles(logfile));
|
||||||
this.addAdapter(new LoggingFiles(logfile));
|
|
||||||
|
|
||||||
|
if (errorfile) this.addAdapter(new LoggingFiles(errorfile, true));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (errorfile)
|
protected getCurrentTime() {
|
||||||
this.addAdapter(new LoggingFiles(errorfile, true));
|
if (process.hrtime.bigint) {
|
||||||
|
return process.hrtime.bigint();
|
||||||
|
} else {
|
||||||
|
return process.hrtime();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected getTimeDiff(start) {
|
||||||
|
if (process.hrtime.bigint) {
|
||||||
|
return Number((process.hrtime.bigint() - start) / BigInt(1000)) / 1000;
|
||||||
|
} else {
|
||||||
|
let diff = process.hrtime(start);
|
||||||
|
return diff[0] * 1000 + diff[1] / 1000000;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -53,6 +70,3 @@ if (process.env.LOGGING_NO_DEFAULT !== "true") {
|
|||||||
Logging = new LoggingBase();
|
Logging = new LoggingBase();
|
||||||
}
|
}
|
||||||
export default Logging;
|
export default Logging;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
67
src/test.ts
67
src/test.ts
@ -6,9 +6,11 @@ const deleteFolderRecursive = function (path: string) {
|
|||||||
if (fs.existsSync(path)) {
|
if (fs.existsSync(path)) {
|
||||||
fs.readdirSync(path).forEach(function (file, index) {
|
fs.readdirSync(path).forEach(function (file, index) {
|
||||||
var curPath = path + "/" + file;
|
var curPath = path + "/" + file;
|
||||||
if (fs.lstatSync(curPath).isDirectory()) { // recurse
|
if (fs.lstatSync(curPath).isDirectory()) {
|
||||||
|
// recurse
|
||||||
deleteFolderRecursive(curPath);
|
deleteFolderRecursive(curPath);
|
||||||
} else { // delete file
|
} else {
|
||||||
|
// delete file
|
||||||
fs.unlinkSync(curPath);
|
fs.unlinkSync(curPath);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@ -16,61 +18,70 @@ const deleteFolderRecursive = function (path: string) {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
deleteFolderRecursive("./logs")
|
deleteFolderRecursive("./logs");
|
||||||
|
|
||||||
Logging.log("test")
|
Logging.log("test");
|
||||||
Logging.log("i", "am", { a: "an" }, 1000);
|
Logging.log("i", "am", { a: "an" }, 1000);
|
||||||
Logging.error(new Error("fehler 001"));
|
Logging.error(new Error("fehler 001"));
|
||||||
Logging.debug("Some Debug infos");
|
Logging.debug("Some Debug infos");
|
||||||
Logging.errorMessage("i", "am", "an", "error");
|
Logging.errorMessage("i", "am", "an", "error");
|
||||||
|
|
||||||
Logging.log("\x1b[31m\x1b[31m\x1b[31m\x1b[31m\x1b[31m\x1b[31m TEST \x1b[31m\x1b[31m\x1b[31m")
|
Logging.log(
|
||||||
|
"\x1b[31m\x1b[31m\x1b[31m\x1b[31m\x1b[31m\x1b[31m TEST \x1b[31m\x1b[31m\x1b[31m"
|
||||||
|
);
|
||||||
|
|
||||||
let err = new Error()
|
let err = new Error();
|
||||||
if (typeof err.stack !== "string") console.log("Stacktrace invalid", err.stack)
|
if (typeof err.stack !== "string") console.log("Stacktrace invalid", err.stack);
|
||||||
|
|
||||||
let cus = new LoggingBase({ name: "test" });
|
let cus = new LoggingBase({ name: "test" });
|
||||||
cus.log("Hello from custom Logger")
|
cus.log("Hello from custom Logger");
|
||||||
|
|
||||||
let cus2 = new LoggingBase("test2");
|
let cus2 = new LoggingBase("test2");
|
||||||
cus2.log("Hello from custom Logger 2")
|
cus2.log("Hello from custom Logger 2");
|
||||||
|
|
||||||
let cus22 = new LoggingBase("test2");
|
let cus22 = new LoggingBase("test2");
|
||||||
cus22.log("Hello from custom Logger 22")
|
cus22.log("Hello from custom Logger 22");
|
||||||
cus2.log("Hello from custom Logger 2")
|
cus2.log("Hello from custom Logger 2");
|
||||||
cus22.log("Hello from custom Logger 22")
|
cus22.log("Hello from custom Logger 22");
|
||||||
cus2.log("Hello from custom Logger 2")
|
cus2.log("Hello from custom Logger 2");
|
||||||
cus22.log("Hello from custom Logger 22")
|
cus22.log("Hello from custom Logger 22");
|
||||||
cus2.log("Hello from custom Logger 2")
|
cus2.log("Hello from custom Logger 2");
|
||||||
cus22.log("Hello from custom Logger 22")
|
cus22.log("Hello from custom Logger 22");
|
||||||
cus2.log("Hello from custom Logger 2")
|
cus2.log("Hello from custom Logger 2");
|
||||||
cus22.log("Hello from custom Logger 22")
|
cus22.log("Hello from custom Logger 22");
|
||||||
cus2.log("Hello from custom Logger 2")
|
cus2.log("Hello from custom Logger 2");
|
||||||
|
|
||||||
const BenchmarkLogger = new LoggingBase({
|
const BenchmarkLogger = new LoggingBase({
|
||||||
console: false,
|
console: false,
|
||||||
name: "bench"
|
name: "bench",
|
||||||
})
|
});
|
||||||
async function benchmark(count: number, message_size: number) {
|
async function benchmark(count: number, message_size: number) {
|
||||||
await BenchmarkLogger.waitForSetup();
|
await BenchmarkLogger.waitForSetup();
|
||||||
const randData = randomBytes(message_size).toString("hex")
|
const randData = randomBytes(message_size).toString("hex");
|
||||||
const t = process.hrtime();
|
const t = process.hrtime();
|
||||||
for (let i = 0; i < count; i++) {
|
for (let i = 0; i < count; i++) {
|
||||||
BenchmarkLogger.log(randData)
|
BenchmarkLogger.log(randData);
|
||||||
}
|
}
|
||||||
const diff = process.hrtime(t);
|
const diff = process.hrtime(t);
|
||||||
const NS_PER_SEC = 1e9;
|
const NS_PER_SEC = 1e9;
|
||||||
await BenchmarkLogger.waitForSetup();
|
await BenchmarkLogger.waitForSetup();
|
||||||
const ns = diff[0] * NS_PER_SEC + diff[1];
|
const ns = diff[0] * NS_PER_SEC + diff[1];
|
||||||
console.log(`Benchmark took ${ns / 1000000}ms for ${count} messages with a size of ${message_size} characters`);
|
console.log(
|
||||||
console.log(`This is equal to ${(ns / 1000000) / count} ms per message`)
|
`Benchmark took ${
|
||||||
|
ns / 1000000
|
||||||
|
}ms for ${count} messages with a size of ${message_size} characters`
|
||||||
|
);
|
||||||
|
console.log(`This is equal to ${ns / 1000000 / count} ms per message`);
|
||||||
}
|
}
|
||||||
|
|
||||||
Logging.waitForSetup().then(async () => {
|
Logging.waitForSetup().then(async () => {
|
||||||
return;
|
return;
|
||||||
console.log("Large data benchmark:")
|
console.log("Large data benchmark:");
|
||||||
await benchmark(7000, 50000);
|
await benchmark(7000, 50000);
|
||||||
|
|
||||||
console.log("Realdata data benchmark:")
|
console.log("Realdata data benchmark:");
|
||||||
await benchmark(100000, 100)
|
await benchmark(100000, 100);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const timer = Logging.time("timer1", "Test Timer");
|
||||||
|
setTimeout(() => timer.end(), 1000);
|
||||||
|
Loading…
Reference in New Issue
Block a user