[Perf] pHash- und EXIF-Disk-Cache zwischen Runs #29

Open
opened 2026-05-27 13:14:28 +02:00 by ferdi2go · 0 comments
Owner

Problem

Wenn dieselben Bilder mehrfach analysiert werden (z.B. Reload, neue Analyse mit anderen Parametern), wird:

  • pHash neu berechnet (in analyzer.py:analyze_folder)
  • EXIF mehrfach pro Bild gelesen (Export, Preview-Bar, Watermark-Template)

Bei 500 Bildern x ~150ms pHash = ~75 s pro Re-Run.

Fix

analyzer_cache.json unter <tempdir>/of-cache/ mit Schluessel md5(path)+mtime:

{
  "<md5>_<mtime>": {"phash": "...", "exif": {...}, "brightness": 120.5}
}

Invalidate wenn mtime nicht uebereinstimmt.

Ausgliederung

Ausgegliedert aus #23 (Thumbnail-Endpoint), weil dort der Disk-Cache nur fuer Thumbnails implementiert wurde. pHash-Cache braucht eigene Datenstruktur und Invalidierungslogik.

## Problem Wenn dieselben Bilder mehrfach analysiert werden (z.B. Reload, neue Analyse mit anderen Parametern), wird: - pHash neu berechnet (in `analyzer.py:analyze_folder`) - EXIF mehrfach pro Bild gelesen (Export, Preview-Bar, Watermark-Template) Bei 500 Bildern x ~150ms pHash = ~75 s pro Re-Run. ## Fix `analyzer_cache.json` unter `<tempdir>/of-cache/` mit Schluessel `md5(path)+mtime`: ```json { "<md5>_<mtime>": {"phash": "...", "exif": {...}, "brightness": 120.5} } ``` Invalidate wenn mtime nicht uebereinstimmt. ## Ausgliederung Ausgegliedert aus #23 (Thumbnail-Endpoint), weil dort der Disk-Cache nur fuer Thumbnails implementiert wurde. pHash-Cache braucht eigene Datenstruktur und Invalidierungslogik.
ferdi2go added the priority: mediummaintenance labels 2026-05-27 13:14:28 +02:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: ferdi2go/OnlyFrames#29