Preview: add pdf+pyvips encode path and simplify timings

This commit is contained in:
2026-04-25 00:20:19 +00:00
parent 0ebff0ec17
commit f1e16b7abe
3 changed files with 79 additions and 62 deletions
+18 -18
View File
@@ -36,16 +36,16 @@ def main() -> int:
if not folder.is_dir():
raise SystemExit(f"Not a directory: {folder}")
files = sorted(path for path in folder.rglob("*") if path.is_file() and is_image_file(path))
files = sorted(
path for path in folder.rglob("*") if path.is_file() and is_image_file(path)
)
if not files:
print(f"No image files found under {folder}")
return 0
total_files = 0
total_bytes = 0
total_load_ms: float = 0.0
total_process_ms: float = 0.0
total_save_ms: float = 0.0
total_timing_slots: list[float] = []
total_preview_ms: float = 0.0
failures = 0
@@ -67,18 +67,19 @@ def main() -> int:
continue
total_bytes += len(preview)
total_load_ms += timing.load_ms or 0.0
total_process_ms += timing.process_ms or 0.0
total_save_ms += timing.save_ms or 0.0
total_preview_ms += timing.total_ms or 0.0
timings = timing.timings or []
if len(total_timing_slots) < len(timings):
total_timing_slots.extend([0.0] * (len(timings) - len(total_timing_slots)))
for i, value in enumerate(timings):
total_timing_slots[i] += value
total_ms = sum(timings)
total_preview_ms += total_ms
if timing.load_ms is not None:
detail = (
f"load={timing.load_ms:.1f}ms process={timing.process_ms:.1f}ms "
f"save={timing.save_ms:.1f}ms total={timing.total_ms:.1f}ms"
)
detail = " / ".join(f"{value:.1f}ms" for value in timings)
if detail:
detail = f"timings={detail} total={total_ms:.1f}ms"
else:
detail = f"total={timing.total_ms:.1f}ms"
detail = f"total={total_ms:.1f}ms"
print(f"OK {rel} backend={timing.backend} bytes={len(preview)} {detail}")
completed = total_files - failures
@@ -89,10 +90,9 @@ def main() -> int:
print(f" failed={failures}")
print(f" preview_bytes={total_bytes}")
if completed:
if total_load_ms or total_process_ms or total_save_ms:
print(f" load_total_ms={total_load_ms:.1f}")
print(f" process_total_ms={total_process_ms:.1f}")
print(f" save_total_ms={total_save_ms:.1f}")
if total_timing_slots:
for i, value in enumerate(total_timing_slots, start=1):
print(f" timing{i}_total_ms={value:.1f}")
print(f" preview_total_ms={total_preview_ms:.1f}")
print(f" preview_avg_ms={total_preview_ms / completed:.1f}")
return 0 if failures == 0 else 1