perf: GC tracing validates scanned pointers via ValidPointerSet hash lookup
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 1-2 days
- Newbie friendliness
- 42/100
- Issue type
- Refactor
- Clarity
- Mostly clear
- Activity status
- Active
- Tech stack
- rust, typescript
- Domain
- performance
Research direction
Start with ValidPointerSet::contains and RandomState::hash_one in the GC tracing path, then read owner decision 129 and the honestptr2 lane context. Compare the plain and arena binary-trees drivers in secret-tests/perf-drivers/programs/binarytrees_*.ts and inspect the profile at main 996bc5d629. Done means removing the unnecessary hash validation under the stated pointer invariant and confirming the plain binary-trees tracing profile improves.
Written by the indexing model from the issue text.
Description
ValidPointerSet::contains (RandomState::hash_one) shows up during tracing in binary-trees plain (GC is about 23% of the profile). With the honest-pointer invariant (owner decision 129: POINTER_TAG means a valid GC header; handles get their own tag), the hash validation should become unnecessary. Found with the binary-trees comparison (plain and arena variants; sources in secret-tests perf-drivers/programs/binarytrees_*.ts). Measured at main 996bc5d629. Follows lane honestptr2.
- Dominant language
- Rust
- Stars
- 4.9k
- Forks
- 166
- Avg merge
- 3h 23m
- Merged PRs (30d)
- 911
Getting set up
- Ships a Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing 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.
More from PerryTS/perry
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
Maintainers usually reply within 1 day
-
bug
Difficulty 3/5 1-2 days Newbie friendliness 67/100
Maintainers usually reply within 1 day
-
bug
Difficulty 4/5 3-5 days Newbie friendliness 48/100
Maintainers usually reply within 1 day
-
Difficulty 3/5 1-2 days Newbie friendliness 76/100
Maintainers usually reply within 1 day
Similar issues
-
BASEPRI needs an ISBOpen
Difficulty 2/5 1-3 hours Newbie friendliness 69/100
rust-embedded/cortex-m#702 · 1 comment ·
-
Make major, minor, and makedev safe on solarish targetsPossibly taken @xtqqczze claimed this today. Open
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 1 day
-
improvement/feedback improvement/workflow-project
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
higress-group/HiRoute#166 ·
Maintainers usually reply within 1 day
-
Proxy ignores l5d-retry-http and l5d-retry-grpc conditions that follow a comma and spacePossibly taken @RaphaelFakhri claimed this today. Open
Difficulty 2/5 1-3 hours Newbie friendliness 83/100
Maintainers usually reply within 3 days
-
sncast panics when decoding a `u384` valuePossibly taken @RaphaelFakhri claimed this today. Open
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
foundry-rs/starknet-foundry#4635 ·
Maintainers usually reply within 3 days