From e0913fb9765374ce6c8b4f1ef00a9e305ef35f14 Mon Sep 17 00:00:00 2001 From: Ricardo Date: Mon, 30 Mar 2026 17:52:30 +0200 Subject: [PATCH] diag: persist memory profiling to file (log buffer gets flushed) --- eleventy.config.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/eleventy.config.js b/eleventy.config.js index 89e3c8e..40b2f6c 100644 --- a/eleventy.config.js +++ b/eleventy.config.js @@ -13,7 +13,7 @@ import matter from "gray-matter"; import { createHash, createHmac } from "crypto"; import { createRequire } from "module"; import { execFileSync } from "child_process"; -import { readFileSync, readdirSync, existsSync, mkdirSync, writeFileSync, copyFileSync } from "fs"; +import { readFileSync, readdirSync, existsSync, mkdirSync, writeFileSync, copyFileSync, appendFileSync } from "fs"; import { resolve, dirname } from "path"; import { fileURLToPath } from "url"; @@ -24,6 +24,8 @@ const __dirname = dirname(fileURLToPath(import.meta.url)); const siteUrl = process.env.SITE_URL || "https://example.com"; // Memory profiler — logs RSS + V8 heap at key build phases +// Writes to file (log buffer gets flushed by AP inbox traffic) AND stdout +const MEM_LOG = "/app/data/.eleventy-mem.log"; function logMemory(phase) { const mem = process.memoryUsage(); const rss = (mem.rss / 1024 / 1024).toFixed(0); @@ -31,7 +33,9 @@ function logMemory(phase) { const heapTotal = (mem.heapTotal / 1024 / 1024).toFixed(0); const external = (mem.external / 1024 / 1024).toFixed(0); const arrayBuffers = (mem.arrayBuffers / 1024 / 1024).toFixed(0); + const line = `[${new Date().toISOString()}] ${phase}: RSS=${rss}MB heap=${heapUsed}/${heapTotal}MB external=${external}MB buffers=${arrayBuffers}MB`; console.log(`[mem] ${phase}: RSS=${rss}MB heap=${heapUsed}/${heapTotal}MB external=${external}MB buffers=${arrayBuffers}MB`); + try { appendFileSync(MEM_LOG, line + "\n"); } catch { /* not on Cloudron or not writable */ } } export default function (eleventyConfig) {