MCPcopy Create free account
hub / github.com/cortex-js/compute-engine / benchmark

Function benchmark

test/utils.ts:361–399  ·  view source on GitHub ↗
(
  fn: () => void,
  expected?: { time: number; mem: number; exprs: number }
)

Source from the content-addressed store, hash-verified

359 expected?: { time: number; mem: number; exprs: number }
360) {
361 const startMem = process.memoryUsage().heapUsed;
362 const start = globalThis.performance.now();
363
364 fn();
365
366 const end = globalThis.performance.now();
367 const endMem = process.memoryUsage().heapUsed;
368
369 const delta = {
370 time: end - start,
371 mem: endMem - startMem,
372 };
373 if (!expected) {
374 console.log('mem:', delta.mem, ', time:', delta.time.toFixed(2));
375 return 1000;
376 }
377
378 // Memory is not a reliable measurement because of unpredictable GC
379 const variance = delta.time / expected.time - 1;
380
381 if (true || Math.abs(variance) > 0.1) {
382 console.error(
383 `\u001b[0mVariance ${(variance * 100).toFixed(1)}% (actual vs expected)`,
384 `\n mem ${emoji(delta.mem, expected.mem)}` +
385 `${memToString(delta.mem)} (${memToString(expected.mem)} ${Number(
386 (100 * delta.mem) / expected.mem
387 ).toFixed(2)}%)` +
388 `\n time ${emoji(delta.time, expected.time)}`,
389 `${timeToString(delta.time)} (${timeToString(expected.time)} ${Number(
390 (100 * delta.time) / expected.time
391 ).toFixed(2)}%)`
392 );
393 }
394 return variance;
395}
396
397function emoji(a, b): string {
398 if (a === b) return '✅';
399 if (a < b) return '\u001b[32m\u25BC\u001b[0m'; // green up triangle
400 return '\u001b[31m\u25B2\u001b[0m';
401}
402

Callers

nothing calls this directly

Calls 8

fnFunction · 0.85
emojiFunction · 0.85
memToStringFunction · 0.85
timeToStringFunction · 0.85
toFixedMethod · 0.80
logMethod · 0.65
absMethod · 0.65
errorMethod · 0.65

Tested by

no test coverage detected