uutils' factor is much slower than GNU's coreutils factor
Open
Nobody has claimed this yet.
I - Performance (Speed)
U - factor
- Dominant language
- Rust
- Stars
- 24.1k
- Forks
- 2k
- Avg merge
- 1d 5h
- Merged PRs (30d)
- 365
Description
After building uutils using cargo build --release on Fedora 32 x86-64:
[shlomif@localhost coreutils]$ time (seq 2 "$(( 10 ** 6 ))" | ./target/release/uutils factor | md5sum)
4cfd4f52505c4e3852c373b8b2e8a628 -
( seq 2 "$(( 10 ** 6 ))" | ./target/release/uutils factor | md5sum; ) 48.35s user 4.08s system 108% cpu 48.240 total
[shlomif@localhost coreutils]$ time (seq 2 "$(( 10 ** 6 ))" | /usr/bin/factor | md5sum)
4cfd4f52505c4e3852c373b8b2e8a628 -
( seq 2 "$(( 10 ** 6 ))" | /usr/bin/factor | md5sum; ) 0.25s user 0.10s system 160% cpu 0.221 total
A ~200 times performance loss is very bad.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Reproduce the reported benchmark after building with cargo build --release, comparing target/release/uutils factor with /usr/bin/factor on the same input. Start by locating the factor command implementation and its performance-related tests or benchmarks, if present. Done means preserving the matching output while substantially reducing the measured runtime gap.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- cli, performance
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100