Documentation Index
Fetch the complete documentation index at: https://mintlify.com/sebamar88/bytekit/llms.txt
Use this file to discover all available pages before exploring further.
Powered by Mintlify
Auto-generate your docs
Performance measurement and timing utilities for debugging
Documentation Index
Fetch the complete documentation index at: https://mintlify.com/sebamar88/bytekit/llms.txt
Use this file to discover all available pages before exploring further.
import { createStopwatch, withTiming, measureSync, measureAsync } from "bytekit";
// or
import { createStopwatch } from "bytekit/debug";
import { createStopwatch, createLogger } from "bytekit";
const logger = createLogger({ namespace: "perf" });
const stopwatch = createStopwatch({
label: "database-query",
logger,
precision: 2,
autoLog: true
});
// Perform operation
const results = await db.query("SELECT * FROM users");
// Stop and get duration
const duration = stopwatch.stop();
console.log(`Query took ${duration}ms`);
// Or log with context
stopwatch.log({ rowCount: results.length });
withTiming<T>(
label: string,
fn: () => Promise<T> | T,
options?: StopwatchOptions
): Promise<T>
import { withTiming, createLogger } from "bytekit";
const logger = createLogger({ namespace: "api" });
const users = await withTiming(
"fetch-users",
async () => {
return await api.get("/users");
},
{ logger }
);
// Logs: "fetch-users took 123.45ms"
measureSync<T>(
label: string,
fn: () => T,
options?: StopwatchOptions
): T
import { measureSync } from "bytekit";
const result = measureSync(
"compute",
() => {
return complexCalculation();
},
{ logger }
);
measureAsync<T>(
label: string,
fn: () => Promise<T> | T,
options?: StopwatchOptions
): Promise<{ result: T; durationMs: number }>
import { measureAsync } from "bytekit";
const { result, durationMs } = await measureAsync(
"api-call",
async () => {
return await api.get("/data");
},
{ logger }
);
console.log(`Operation took ${durationMs}ms`);
console.log("Result:", result);
captureDebug<T>(
fn: () => Promise<T> | T
): Promise<{ result: T; durationMs: number }>
import { captureDebug } from "bytekit";
const { result, durationMs } = await captureDebug(async () => {
return await expensiveOperation();
});
if (durationMs > 1000) {
console.warn(`Operation was slow: ${durationMs}ms`);
}
import {
createStopwatch,
withTiming,
measureAsync,
createLogger
} from "bytekit";
const logger = createLogger({ namespace: "performance" });
// Manual stopwatch
const stopwatch = createStopwatch({
label: "batch-process",
logger,
autoLog: true
});
for (const item of items) {
await processItem(item);
}
stopwatch.stop();
// Logs: "batch-process took 1234.56ms"
// Automatic timing wrapper
const data = await withTiming(
"fetch-data",
async () => api.get("/data"),
{ logger }
);
// Measure with result
const { result, durationMs } = await measureAsync(
"transform",
async () => transform(data),
{ logger }
);