Skip to content

It's slow, it's using all my RAM, or my cache drive is full

Open Performance Settings from the gear menu. Every setting there applies immediately with no restart, with three exceptions: the Stacking Tile Cache applies on next launch, Scan Concurrency applies to the next scan, and Cache Location goes through a guided relocation instead of saving directly.

Screenshot: Performance Settings, top of the page, showing the concurrency fields.

LabelControlsDefaultEnv override
Read ConcurrencyParallel whole-frame reads for tile and thumbnail builds3EIGENFRAME_READ_CONCURRENCY
Scan ConcurrencyLibrary-scan workers per drive or share0 (automatic: 4 on a local drive, 16 on a network share)EIGENFRAME_SCAN_CONCURRENCY
Compute ConcurrencyTile build threadsCPU count, capped at 16EIGENFRAME_COMPUTE_CONCURRENCY
Stack jobs (concurrent)Calibration stacking jobs running at once4none
Stacking reserved workers (under contention)Compute workers held for stacking when stacking and viewing contend4none
Viewer reserved workers (under contention)Compute workers held for the viewer when stacking and viewing contend8none
Alignment evaluate concurrencyFrames the Evaluate alignment step re-detects at onceCPU count minus 2, never below 2, capped at Compute ConcurrencyEIGENFRAME_ALIGNMENT_EVAL_CONCURRENCY
In-Flight Memory BudgetCeiling on memory held by reads in progress4 GBnone
Cache Size CapDisk-space ceiling for cached image tiles, covering the full tile pyramid8 GBnone
Stacking Tile CacheIn-memory budget for decoded tiles reused during integration (shared master tiles and the stacking lab’s source tiles)4 GBnone
Stack Memory BudgetCeiling on the working memory of stack tiles building at once0 (automatic: half the machine’s RAM, floored at 4 GB)none
Cache Eviction HeadroomHow much to reclaim in one pass once the Cache Size Cap is reached1 GBnone
Drive Free-Space ReserveMinimum free space to keep on the cache drive2 GBnone
Drive Eviction TargetHow much to reclaim in one pass once the free-space reserve is breached8 GBnone
Stalled-read timeoutHow long a stalled read is held before it’s dropped5 secondsnone
Cache LocationFolder path for the tile cacheEmpty (uses %APPDATA%/EigenFrame/tiles-cache)none

Only the four settings with an entry in the Env override column can actually be pinned by an environment variable. When one is set, its field on the screen is disabled and shows which variable is holding it.

The screen warns you if Read Concurrency and Compute Concurrency are both 2 or below: performance is significantly reduced at that level.

A library on a spinning disk or a network share

Section titled “A library on a spinning disk or a network share”

Lower Read Concurrency. Many concurrent whole-frame reads make a spinning disk seek between them instead of staying on one track, so a small number keeps the head busy without thrashing. Scan Concurrency already treats network shares differently from local drives by default (16 workers instead of 4), because scanning is many small header reads rather than a few large ones; raise or lower it if that default doesn’t fit your share.

Lower Read Concurrency, Compute Concurrency, In-Flight Memory Budget, and Stack Memory Budget together. Reads pause once the In-Flight Memory Budget fills rather than piling up, so a smaller budget keeps a lid on peak memory during tile and thumbnail builds. Stack Memory Budget does the same for stacking: leave it at 0 to let it track half the machine’s RAM automatically, or set it explicitly on a machine where that automatic half is still too much.

The tile cache is fully disposable. Every tile rebuilds on demand from your source frames, so nothing is lost if you empty it or move it. Cache Size Cap is the overall ceiling; Drive Free-Space Reserve keeps a minimum free regardless of the cap; Drive Eviction Target and Cache Eviction Headroom control how much is reclaimed in one pass so eviction doesn’t thrash right at the edge.

If the cache belongs on a different drive, change Cache Location and saving opens a guided relocation with three options:

  • Move existing cache copies every cached tile to the new location, then removes the old one. Keeps the cache intact.
  • Start fresh switches to the new, empty location and deletes the old cache. Faster; tiles rebuild on demand.
  • Switch & keep old points at the new location and leaves the old files in place for you to clean up yourself.

Screenshot: The Relocate tile cache dialog with its three transition options.