2
0
mirror of https://github.com/thumbsup/thumbsup synced 2024-11-11 07:10:26 +00:00
Commit Graph

6 Commits

Author SHA1 Message Date
Romain
9425604dd7 chore(dependencies): upgrade Standard from v11 to v12 which introduces a style change 2018-12-11 23:11:03 +01:00
Romain
7dd714c957 refactor(tests): dynamically generate test folders to check more edge cases 2018-06-16 18:26:17 +02:00
Romain
91528ad076 test(index): cleanup thumbsup.db between test runs, otherwise the test does nothing 2017-12-10 10:40:12 +11:00
Romain
3e098e2328 Extract Handlebars helpers to prepare for theme structure + add unit tests 2017-11-28 07:53:51 +11:00
Romain
cbf8a1f3b4 Don’t index media from Synology thumbnail folders (@eaDir) nor folders starting with “.” 2017-11-26 22:32:03 +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