##// END OF EJS Templates
worker: avoid reading 1 byte at a time from the OS pipe...
worker: avoid reading 1 byte at a time from the OS pipe Apparently `pickle.load` does a lot of small reads, many of them literally 1-byte, so it benefits greatly from buffering. This change enables the buffering, at the cost of more complicated interaction with the `selector` API. On one repository with ~400k files this reduces the time by about ~30s, from ~60 to ~30s. The difference is so large because the actual updating work is parallellized, while these small reads are bottlenecking the central hg process.

File last commit:

r50535:ab6151e1 default
r50794:3eef8baf default
Show More
Cargo.toml
25 lines | 514 B | text/plain | TOMLLexer
[package]
name = "rhg"
version = "0.1.0"
authors = [
"Antoine Cezar <antoine.cezar@octobus.net>",
"Raphaël Gomès <raphael.gomes@octobus.net>",
]
edition = "2021"
[dependencies]
atty = "0.2.14"
hg-core = { path = "../hg-core"}
chrono = "0.4.23"
clap = { version = "4.0.24", features = ["cargo"] }
derive_more = "0.99.17"
home = "0.5.4"
lazy_static = "1.4.0"
log = "0.4.17"
micro-timer = "0.4.0"
regex = "1.7.0"
env_logger = "0.9.3"
format-bytes = "0.3.0"
users = "0.11.0"
which = "4.3.0"
rayon = "1.5.3"