Skip to content

Commit

Permalink
feat(bench): improve bench mark logs
Browse files Browse the repository at this point in the history
  • Loading branch information
AliMD committed Mar 16, 2023
1 parent 27cdb34 commit 8d3121b
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 14 deletions.
24 changes: 13 additions & 11 deletions demo/es-bench/bench.ts
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
import {delay} from '@alwatr/util';

import type {MaybePromise} from '@alwatr/type';

export async function bench(name: string, func: () => MaybePromise<void>): Promise<void> {
await delay(1_000);
console.time(name);
for (let i = 100_000; i; i--) {
await func();
export const bench = (name: string, func: () => void): void => {
globalThis.gc?.();
const startMemory = process.memoryUsage.rss();
const startTime = performance.now();
for (let i = 1_000_000; i; i--) {
func();
}
console.timeEnd(name);
}
const duration = performance.now() - startTime;
const runPerSec = Math.round( 1_000_000 / duration * 1000);
const memoryUsage = Math.round((process.memoryUsage.rss() - startMemory) / 10) / 100;

console.log(`run ${name} ${runPerSec.toLocaleString()}/s with ${memoryUsage.toLocaleString()}kb`);
globalThis.gc?.();
};
7 changes: 4 additions & 3 deletions demo/es-bench/for-in-vs-of.ts
Original file line number Diff line number Diff line change
Expand Up @@ -40,9 +40,10 @@ function test_for_of_keys(): void {
}

prepare();
await bench('for-in', test_for_in);
await bench('for-of-values', test_for_of_values);
await bench('for-of-keys', test_for_of_keys);

bench('for-of-values', test_for_of_values);
bench('for-of-keys', test_for_of_keys);
bench('for-in', test_for_in);

globalThis.document?.body.append(' Done. Check the console.');

Expand Down

0 comments on commit 8d3121b

Please sign in to comment.