2
0
mirror of https://github.com/thumbsup/thumbsup synced 2024-11-15 18:12:46 +00:00
Commit Graph

5 Commits

Author SHA1 Message Date
Romain
e9e5f32970 Add test coverage + clean up build scripts 2017-11-28 07:53:55 +11:00
Romain
870b60de17 Simplify test scripts & document them in CONTRIBUTING.md 2017-11-25 22:29:21 +11:00
Romain
24b2f9bd7c Major optimisations: SQLite index + faster disk glob + new exiftool streaming
1. Move from a JSON index to a SQLite database.
  - This allows the indexing to be interrupted & resumed
  - Updating the index consumes less RAM than loading / saving an entire JSON object
  - Loading the index consumes less RAM since it can be streamed, only exacting the properties we need every time (instead of loading all EXIF data in memory, only to discard most of it later)
  - These make a big difference when processing 10,000+ photos

2. Switch from <glob> to a manual <readdir>
  - Glob would take several hundred or GB of RAM when asked to find several thousand files
  - Manual approach with <micromatch> library does the same thing in a fraction of the time / memory usage

3. Exiftool optimisations
  - Run 1 exiftool process per CPU, still in batch mode (divide all files to be read into 1 bucket per CPU)
  - Stream the exiftool output instead of buffering it in memory
2017-11-24 22:08:59 +11:00
Romain
afd3915778 Add full integration test: compare galleries to previously generated snapshot 2017-06-14 17:44:28 +10:00
rprieto
62c0d09868 Initial commit 2014-04-17 21:26:18 +10:00