Skip to content

speed up large-project saves and reloads#79

Open
mrhyde wants to merge 4 commits into
mainfrom
perf-large-projects
Open

speed up large-project saves and reloads#79
mrhyde wants to merge 4 commits into
mainfrom
perf-large-projects

Conversation

@mrhyde

@mrhyde mrhyde commented May 28, 2026

Copy link
Copy Markdown
Collaborator

On a 2000-task project the end-to-end mutation latency was ~48s. After this pass it's ~1s.

  • only rewrite changed task files on save (dirty-set tracking per project)
  • suppress self-write modify/delete events instead of letting them trigger a 300ms debounced reload
  • walk the projects/tasks folders directly instead of getMarkdownFiles().filter(...) over the whole vault
  • pre-group children by parentId in the table renderer (O(N) instead of O(N²))
  • reuse the childIds set in loadTasksFromFolder self-heal pass (O(N) instead of O(N²))

Tests cover dirty-set efficiency per mutator, self-write marker semantics (set, single-use consume, stale-after-window), title-rename child rewrites, and the concurrent-save race.

@mrhyde

mrhyde commented May 28, 2026

Copy link
Copy Markdown
Collaborator Author

add per-project task index, making findTask/findParentId O(1) so bulk mutators don't tree-walk per id

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant