Table of Contents
Motivation
Even with the AWK based indexer, indexing cards before each review gets slow if there are a lot of files / cards.
To work around this, the indexer can be run only one time, caching the results in a hash table.
Advises are added to `delete-file' and `rename-file' remove / update keys from the hash table.
Changes to existing files & new files are detected with a
before-save-hook
on org-mode files.
During a review many files are changed and saved. To keep this as fast as possible, instead of re-processing files after each save, changed files are collected in `org-fc-cache-queue' and reprocessed in bulk the next time the cache is accessed.
Assuming only a small subset of the flashcard files is changed between reviews, this is much faster than building the full index ch time.
Activation
Caching can be activated/deactivated with
M-x org-fc-cache-mode
.
To activate this mode when Emacs starts, activate it in your configuration:
(org-fc-cache-mode)
Performance
Setup
18348 | cards |
2478 | files |
475860 | lines |
AWK
Dashboard | Elapsed time: 3.642393s |
Index Cards in Subdirectory | Elapsed time: 0.502262s |
Index Cards with Tag | Elapsed time: 3.266725s (0.244461s in 1 GCs) |
Cache
Cache Build | Elapsed time: 3.299303s (0.241431s in 1 GCs) |
Dashboard | Elapsed time: 0.649638s |
Index Cards in Subdirectory | Elapsed time: 0.024609s |
Index Cards with Tag | Elapsed time: 0.038080s |