You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- Implement a more efficient method to exclude ReiserFS - essentially a one-time assertion that isn't repeatedly called
37
-
- Consider improved sorting algorithms in `src/printer.rs`
37
+
- Consider improved sorting algorithms in `src/util/printer.rs`
38
38
39
39
- Consider using `statx` on Linux, though this presents some challenges due to `statx` only recently becoming available on MUSL. However, `statx` only requests the attributes explicitly asked for, potentially offering speed benefits as well as additional metadata. This requires careful consideration. See the [Rust implementation](https://github.com/rust-lang/rust/blob/07bdbaedc63094281483c40a88a1a8f2f8ffadc5/library/std/src/sys/fs/unix.rs#L105) for reference.
40
40
@@ -79,6 +79,10 @@ Found 3 outliers among 100 measurements (3.00%)
79
79
80
80
Implement extra functionality such as custom `.fdfignore` files. This shouldn't be particularly difficult to implement. Additional features to be added as requirements arise.
81
81
82
+
Another one is the wrap any files from printing in quotes, so they can be passed to xargs (if they annoyingly contain spaces...)
83
+
84
+
Printing additional file metadata on request (like ls)
85
+
82
86
**Note**: Ideally implemented after the parallelisation restructure below is resolved.
83
87
84
88
## 5. Parallelisation Restructure
@@ -104,7 +108,7 @@ impl TLSRegex {
104
108
105
109
## 7. CIFS Filesystem Issue
106
110
107
-
The `getdents` skip code (in `src/iter.rs` around line 243) encounters issues on certain exotic CIFS filesystems. This was observed on a friend's server setup but hasn't been reproducible since, and access to the original server is no longer available.
111
+
The `getdents` skip code [in src/fs/iter.rs](./src/fs/iter.rs#L195) encounters issues on certain exotic CIFS filesystems. This was observed on a friend's server setup but hasn't been reproducible since, and access to the original server is no longer available.
108
112
109
113
Reverting to the standard `getdents` "call until 0" paradigm resolved the issue and returned the expected results.
fdf is a high-performance POSIX file finder written in Rust with extensive C FFI. It serves as a lightweight alternative to tools such as fd and find, with a focus on speed, efficiency, and cross-platform compatibility. Benchmarks demonstrate fdf running up to 2x faster than comparable tools, achieved through low-level optimisation, SIMD techniques, and direct kernel interfacing.
5
+
fdf is a high-performance POSIX file finder written in Rust with extensive C FFI.
6
+
7
+
It serves as a lightweight alternative to tools such as fd and find, with a focus on speed, efficiency, and cross-platform compatibility. Benchmarks demonstrate fdf running up to 2x faster than comparable tools, achieved through low-level optimisation, SIMD techniques, and direct kernel interfacing.
6
8
7
9
PLEASE NOTE: This is due to undergo a rename before a 1.0
8
10
@@ -125,7 +127,7 @@ To avoid issues, use --same-file-system when traversing symlinks. Both fd and fi
125
127
126
128
### Key Optimisations
127
129
128
-
-**getdents64: Optimised the Linux/Android-specific directory reading by significantly reducing the number of getdents system calls. This approach enables single-pass reads for small directories and reduces getdents invocations by roughly 50% in testing. See the skip code(or follow link) [in src/iter.rs](./src/iter.rs#L195)**
130
+
-**getdents64: Optimised the Linux/Android-specific directory reading by significantly reducing the number of getdents system calls. This approach enables single-pass reads for small directories and reduces getdents invocations by roughly 50% in testing. See the skip code(or follow link) [in src/fs/iter.rs](./src/fs/iter.rs#L195)**
129
131
130
132
-**find_char_in_word/find_last_char_in_word**: Locates the first/last occurrence of a byte in a 64-bit word using SWAR (SIMD within a register), implemented as a const function
131
133
@@ -135,7 +137,7 @@ To avoid issues, use --same-file-system when traversing symlinks. Both fd and fi
135
137
136
138
The following function provides an elegant solution to avoid branch mispredictions/SIMD instructions during directory entry parsing (a performance-critical loop):
137
139
138
-
Check source code for further explanation [in src/utils.rs](./src/utils.rs#L195)**
140
+
Check source code for further explanation [in utils.rs](./src/util/utils.rs#L195)**
139
141
140
142
```rust
141
143
// Computational complexity: O(1) - truly constant time
@@ -222,7 +224,7 @@ I additionally emailed the author of memchr and got some nice tips, great guy, s
222
224
223
225
### Feature Enhancements (Planned)
224
226
225
-
More elaborate improvements discussed [at this link](./IMPROVEMENTS.md)
227
+
More elaborate improvements/fixes discussed [at this link](./IMPROVEMENTS.md)
226
228
227
229
**API cleanup, currently the CLI is the main focus but I'd like to fix that eventually!**
0 commit comments