Mercurial > hg
view rust/hg-cpython/Cargo.toml @ 50400:95acba2c29f6
encoding: avoid quadratic time complexity when json-encoding non-UTF8 strings
Apparently the code uses "+=" with a bytes object, which is linear-time, so the
whole encoding is quadratic-time. This patch makes us use a bytearray object,
instead, which has a(n amortized-)constant-time append operation.
The encoding is still not particularly fast, but at least a 10MB file
takes tens of seconds, not many hours to encode.
author | Arseniy Alekseyev <aalekseyev@janestreet.com> |
---|---|
date | Mon, 06 Mar 2023 11:27:57 +0000 |
parents | 5844cd8e81ca |
children | 37a079410507 |
line wrap: on
line source
[package] name = "hg-cpython" version = "0.1.0" authors = ["Georges Racinet <gracinet@anybox.fr>"] edition = "2021" [lib] name='rusthg' crate-type = ["cdylib"] [dependencies] cpython = { version = "0.7.1", features = ["extension-module"] } crossbeam-channel = "0.5.6" hg-core = { path = "../hg-core"} libc = "0.2.137" log = "0.4.17" env_logger = "0.9.3" stable_deref_trait = "1.2.0" vcsgraph = "0.2.0"