fix(reader): M27 r2 — 扫描深度提到 6 + 按 Books 第一级目录分组
真机真实布局暴露两处问题(评审 P1):
- Books/400+本高质量完本合集/<分类>/<作品>/<书名>.txt 在 depth 3-4,旧 depth≤2 让 413 本 3.8GB 不可见
→ SHELF_SCAN_MAX_DEPTH=2→6;report 新增 depth_skipped,超深书籍文件计数并在 g_notice 可见提示
(有 N 个文件因目录层数超过 6 层未显示),不再静默
- 按完整相对路径分组会把 413 本书炸成 410 个每条 1 书的段头
→ 分组键改为 Books/ 第一级目录(shelf_book.top);完整相对路径仍在 group[],
第一级之后的子路径(分类/作品)放进副题 sub(如 01、玄幻/01、斗破 · TXT · 2.1MB)
→ 真机书库只剩 3 组:400+本高质量完本合集 / kh / 轻小说
- 单测 50 断言:depth3/4 收录、depth7 计入 depth_skipped、四种真实路径的组名、
a/b 与 a/c 同组 a、副题含子路径、format 回归、根组未分类、path/进度不变
This commit is contained in:
1 parent
409fd1edf7
commit
63ead3ec1e
5 files changed
+211
-82
No files matched your search
@@ -52,7 +52,7 @@ int main(int argc, char **argv)
|
||||
const char *env = getenv("MEOW_DATA_DIR");
|
||||
snprintf(g_cfgdir, sizeof g_cfgdir, "%s", (env && env[0]) ? env : "/tmp/m27bench_data");
|
||||
|
||||
int n = 0, rows_f = 0, rows_d = 0, trunc = 0;
|
||||
int n = 0, rows_f = 0, rows_d = 0, trunc = 0, skipped = 0;
|
||||
int64_t best_scan = INT64_MAX, best_build = INT64_MAX, sum_scan = 0;
|
||||
for (int r = 0; r < reps; r++) {
|
||||
shelf_scan_report rep;
|
||||
@@ -64,15 +64,16 @@ int main(int argc, char **argv)
|
||||
int64_t t2 = now_us();
|
||||
int64_t s = t1 - t0, b = t2 - t1;
|
||||
trunc = rep.truncated;
|
||||
skipped = rep.depth_skipped;
|
||||
sum_scan += s;
|
||||
if (s < best_scan) best_scan = s;
|
||||
if (b < best_build) best_build = b;
|
||||
printf("run %d: scan %lld us, build_rows(format+folder) %lld us, books=%d rows_f=%d rows_d=%d trunc=%d\n",
|
||||
r + 1, (long long)s, (long long)b, n, rows_f, rows_d, rep.truncated);
|
||||
printf("run %d: scan %lld us, build_rows(format+folder) %lld us, books=%d rows_f=%d rows_d=%d trunc=%d skip=%d\n",
|
||||
r + 1, (long long)s, (long long)b, n, rows_f, rows_d, rep.truncated, rep.depth_skipped);
|
||||
}
|
||||
printf("RESULT root=%s mode=%s reps=%d books=%d trunc=%d rows_format=%d rows_folder=%d "
|
||||
"scan_min=%lldus scan_avg=%lldus build_min=%lldus\n",
|
||||
"scan_min=%lldus scan_avg=%lldus build_min=%lldus depth_skipped=%d\n",
|
||||
root, use_prog ? "progress" : "noop", reps, n, trunc, rows_f, rows_d,
|
||||
(long long)best_scan, (long long)(sum_scan / reps), (long long)best_build);
|
||||
(long long)best_scan, (long long)(sum_scan / reps), (long long)best_build, skipped);
|
||||
return 0;
|
||||
}
|
||||
Reference in new issue
Block a user