Skip to content

Commit 577e9d4

Browse files
committed
Add detailed cache hit/miss stats and initial cache size
1 parent 529e692 commit 577e9d4

File tree

1 file changed

+15
-13
lines changed

1 file changed

+15
-13
lines changed

scripts/generate-md-exports.mjs

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,9 @@ async function createWork() {
106106
if (noCache) {
107107
console.log(`ℹ️ No cache directory found, this will take a while...`);
108108
await mkdir(CACHE_DIR, {recursive: true});
109+
} else {
110+
const initialCacheFiles = await readdir(CACHE_DIR);
111+
console.log(`📦 Cache directory has ${initialCacheFiles.length} files from previous build`);
109112
}
110113

111114
// Track which cache files are used during this build
@@ -213,24 +216,20 @@ async function createWork() {
213216
try {
214217
const allFiles = await readdir(CACHE_DIR);
215218
const filesToDelete = allFiles.filter(file => !globalUsedCacheFiles.has(file));
219+
const overlaps = allFiles.filter(file => globalUsedCacheFiles.has(file));
216220

217221
console.log(`📊 Cache tracking stats:`);
218-
console.log(` - Files in cache dir: ${allFiles.length}`);
222+
console.log(` - Files in cache dir (after build): ${allFiles.length}`);
219223
console.log(` - Files tracked as used: ${globalUsedCacheFiles.size}`);
220-
console.log(` - Files to delete: ${filesToDelete.length}`);
224+
console.log(` - Files that existed and were used: ${overlaps.length}`);
225+
console.log(` - Files to delete (old/unused): ${filesToDelete.length}`);
226+
console.log(` - Expected after cleanup: ${overlaps.length} files`);
221227

222-
// Debug: Show a few examples of what we're comparing
223-
const usedArray = Array.from(globalUsedCacheFiles);
224-
console.log(` - Example used files: ${usedArray.slice(0, 3).join(', ')}`);
225-
console.log(` - Example dir files: ${allFiles.slice(0, 3).join(', ')}`);
226-
console.log(` - Example to delete: ${filesToDelete.slice(0, 3).join(', ')}`);
228+
// Debug: Show a few examples
229+
console.log(` - Example used: ${Array.from(globalUsedCacheFiles).slice(0, 2).join(', ')}`);
230+
console.log(` - Example to delete: ${filesToDelete.slice(0, 2).join(', ')}`);
231+
console.log(` - Example kept: ${overlaps.slice(0, 2).join(', ')}`);
227232

228-
// Check if there's ANY overlap
229-
const overlaps = allFiles.filter(file => globalUsedCacheFiles.has(file));
230-
console.log(` - Files that overlap (exist in both): ${overlaps.length}`);
231-
if (overlaps.length > 0) {
232-
console.log(` - Example overlaps: ${overlaps.slice(0, 3).join(', ')}`);
233-
}
234233

235234
if (filesToDelete.length > 0) {
236235
await Promise.all(
@@ -428,6 +427,9 @@ async function processTaskList({id, tasks, cacheDir, noCache, usedCacheFiles}) {
428427
`📤 Worker[${id}]: Updated the following files on R2: \n${r2CacheMisses.map(n => ` - ${n}`).join('\n')}`
429428
);
430429
}
430+
const cacheHits = success - cacheMisses.length;
431+
console.log(`📈 Worker[${id}]: Cache stats: ${cacheHits} hits, ${cacheMisses.length} misses (${((cacheMisses.length / success) * 100).toFixed(1)}% miss rate)`);
432+
431433
if (cacheMisses.length / tasks.length > 0.1) {
432434
console.warn(`⚠️ Worker[${id}]: More than 10% cache miss rate during build.`);
433435
} else if (cacheMisses.length > 0) {

0 commit comments

Comments
 (0)