GoogleChrome / GoogleChrome/ripunzip

Allow more parallelism than rayon default (thread per core)

Open
#117 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
Rust
Stars
294
Forks
30
PR merge metrics
No merged PRs in 30d

Description

Ripunzip uses rayon default thread pool, which I believe is one thread per logical core.

This is appropriate for cpu-bound work. However, unzipping spends a lot of time blocking on I/O, waiting for disk or network.

In such cases, you benefit from more threads than cores, so you can issue more iops in parallel. Particularly with SSDs that require many parallel I/O requests to saturate the hardware.

Ripgrep could either:
- provide a tuning argument like -j
- or auto tune the thread pool size (somehow)
- or both

Contributor guide

Open the contributing guide

Research direction

Start by locating where ripunzip initializes Rayon’s default thread pool and where command-line options are defined. Compare the proposed -j tuning argument with automatic sizing for I/O-bound extraction, then establish how the chosen behavior should be evaluated on disk or network workloads.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
performance
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.