Skip to content

Perf - #627

Merged
bootandy merged 5 commits into
masterfrom
perf
Oct 27, 2026
Merged

Perf#627
bootandy merged 5 commits into
masterfrom
perf

Conversation

@bootandy

Copy link
Copy Markdown
Owner

No description provided.

arcuru and others added 4 commits October 26, 2026 20:40
Also thread metadata through the ignore_file -> build_node boundary so
filter-active walks (-x / -M / -A / -y) stat each entry at most once.

Correctness verified by diffing output against the pre-change binary
with default flags, -i, -e, -v, -X, -M, -x.

Assisted-by: Claude Opus 4.7 (code review, refactoring)
Under `-f` the file's stat is mostly thrown away — `node_from_tuple`
sets size to 1 and the time fields are only read when -M/-A/-y are
on. The only field still needed downstream is `inode_device` for
`clean_inodes` dedup, and both halves are syscall-free: `inode`
from `DirEntry::ino()` (getdents64), `dev` from the parent
directory's cached tuple.

Gated to `-f` without `-L` and without metadata-needing filters,
so output is byte-identical to the previous stat path. Unix-only;
Windows DirEntry has no cheap d_ino analogue.

Assisted-by: Claude Opus 4.7 (code review, refactoring)
Syscall reduction verified via strace on a 3-dir / 5-file test tree:
statx count drops from 11 to 8, exactly one per directory saved.

Assisted-by: Claude Opus 4.7 (code review, refactoring)
@bootandy
bootandy force-pushed the perf branch 3 times, most recently from 3b566b9 to 7d95c35 Compare October 26, 2026 21:37
@bootandy
bootandy marked this pull request as ready for review October 26, 2026 21:51
@bootandy
bootandy merged commit 73adafe into master Oct 27, 2026
38 checks passed
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.

2 participants