perf(core): optimize SSG collected data memory and worker thread communication (#11162)

This commit is contained in:
Sébastien Lorber 2025-05-09 13:34:02 +02:00 committed by GitHub
parent 53fa0ecb1f
commit 33811e38fe
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 105 additions and 46 deletions

View file

@ -72,12 +72,22 @@ function createPerfLogger(): PerfLoggerAPI {
}
};
const formatMemory = (memory: Memory): string => {
const fmtHead = (bytes: number) =>
logger.cyan(`${(bytes / 1000000).toFixed(0)}mb`);
const formatBytesToMb = (bytes: number) =>
logger.cyan(`${(bytes / 1024 / 1024).toFixed(0)}mb`);
const formatMemoryDelta = (memory: Memory): string => {
return logger.dim(
`(${fmtHead(memory.before.heapUsed)} -> ${fmtHead(
`(Heap ${formatBytesToMb(memory.before.heapUsed)} -> ${formatBytesToMb(
memory.after.heapUsed,
)} / Total ${formatBytesToMb(memory.after.heapTotal)})`,
);
};
const formatMemoryCurrent = (): string => {
const memory = getMemory();
return logger.dim(
`(Heap ${formatBytesToMb(memory.heapUsed)} / Total ${formatBytesToMb(
memory.heapTotal,
)})`,
);
};
@ -103,7 +113,7 @@ function createPerfLogger(): PerfLoggerAPI {
console.log(
`${PerfPrefix}${formatStatus(error)} ${label} - ${formatDuration(
duration,
)} - ${formatMemory(memory)}`,
)} - ${formatMemoryDelta(memory)}`,
);
};
@ -144,7 +154,9 @@ function createPerfLogger(): PerfLoggerAPI {
};
const log: PerfLoggerAPI['log'] = (label: string) =>
console.log(`${PerfPrefix} ${applyParentPrefix(label)}`);
console.log(
`${PerfPrefix} ${applyParentPrefix(label)} - ${formatMemoryCurrent()}`,
);
const async: PerfLoggerAPI['async'] = async (label, asyncFn) => {
const finalLabel = applyParentPrefix(label);