sapling/eden/scm/lib/dag/Cargo.toml

63 lines
1.4 KiB
TOML
Raw Normal View History

[package]
name = "dag"
version = "0.1.0"
edition = "2018"
[features]
default = ["for-tests", "indexedlog-backend"]
for-tests = ["quickcheck"]
indexedlog-backend = ["indexedlog", "fs2", "tempfile"]
[dependencies]
dag-wire-types = { path = "dag-wire-types" }
drawdag = { path = "../drawdag" }
indexedlog = { path = "../indexedlog", optional = true }
minibytes = { path = "../minibytes" }
nonblocking = { path = "../nonblocking" }
vlqencoding = { path = "../vlqencoding" }
anyhow = "1.0.20"
async-trait = "0.1"
bitflags = "1"
byteorder = "1.2.7"
fs2 = { version = "0.4.3", optional = true }
futures = "0.3"
indexmap = "1.0.1"
itertools = "0.8"
parking_lot = "0.10"
quickcheck = { version = "0.9", optional = true }
serde = { version = "1", features = ["derive"] }
tempfile = { version = "3", optional = true }
thiserror = "1"
tracing = "0.1"
[dev-dependencies]
# Note: bindag depends on "dag" with features!
bindag = { path = "bindag" }
dag-wire-types = { path = "dag-wire-types", features = ["for-tests"] }
dev-logger = { path = "../dev-logger" }
fs2 = "0.4.3"
indexedlog = { path = "../indexedlog" }
mincode = { path = "../mincode" }
minibench = { path = "../minibench" }
once_cell = "1"
quickcheck = "0.9"
tokio = { version = "0.2", features = ["full"] }
unicode-width = "0.1.7"
[[bench]]
name = "spanset"
harness = false
dag: add benchmark about various "segment size" choices Summary: Add a benchmark testing various segment sizes - time to build segments, log size, and ancestor calcuation performance. An initial output looks like: building segment_size=4 0.223 ms segments: [34859, 10972, 3156, 834, 218, 55, 13, 3] log len: 1194609 ancestor calcuation segment_size=4 1.510 s building segment_size=8 0.193 ms segments: [34859, 5472, 737, 95, 11, 1] log len: 958272 ancestor calcuation segment_size=8 1.630 s building segment_size=10 0.213 ms segments: [34859, 4339, 460, 46, 4] log len: 918468 ancestor calcuation segment_size=10 1.739 s building segment_size=12 0.187 ms segments: [34859, 3613, 316, 26, 2] log len: 893901 ancestor calcuation segment_size=12 1.934 s building segment_size=14 0.202 ms segments: [34859, 3034, 228, 16, 1] log len: 873677 ancestor calcuation segment_size=14 2.311 s building segment_size=16 0.199 ms segments: [34859, 2601, 172, 10] log len: 858211 ancestor calcuation segment_size=16 2.139 s building segment_size=18 0.193 ms segments: [34859, 2280, 133, 7] log len: 847505 ancestor calcuation segment_size=18 2.301 s building segment_size=20 0.175 ms segments: [34859, 2043, 105, 5] log len: 839458 ancestor calcuation segment_size=20 2.335 s building segment_size=22 0.187 ms segments: [34859, 1847, 85, 3] log len: 832764 ancestor calcuation segment_size=22 2.500 s building segment_size=24 0.206 ms segments: [34859, 1668, 71, 2] log len: 826775 ancestor calcuation segment_size=24 2.570 s building segment_size=32 0.194 ms segments: [34859, 1230, 38, 1] log len: 811701 ancestor calcuation segment_size=32 3.091 s building segment_size=64 0.215 ms segments: [34859, 598, 9] log len: 790230 ancestor calcuation segment_size=64 4.215 s building segment_size=128 0.281 ms segments: [34859, 293, 2] log len: 779475 ancestor calcuation segment_size=128 7.573 s It seems segment size = 8 to 20 might be a reasonable choice. Reviewed By: sfilipco Differential Revision: D16660078 fbshipit-source-id: f8af64c703ce0209b9b4c09112c9bdc4a1371172
2019-08-10 02:12:58 +03:00
[[bench]]
name = "segment_sizes"
harness = false
[[bench]]
name = "dag_ops"
dag: add benchmark about various "segment size" choices Summary: Add a benchmark testing various segment sizes - time to build segments, log size, and ancestor calcuation performance. An initial output looks like: building segment_size=4 0.223 ms segments: [34859, 10972, 3156, 834, 218, 55, 13, 3] log len: 1194609 ancestor calcuation segment_size=4 1.510 s building segment_size=8 0.193 ms segments: [34859, 5472, 737, 95, 11, 1] log len: 958272 ancestor calcuation segment_size=8 1.630 s building segment_size=10 0.213 ms segments: [34859, 4339, 460, 46, 4] log len: 918468 ancestor calcuation segment_size=10 1.739 s building segment_size=12 0.187 ms segments: [34859, 3613, 316, 26, 2] log len: 893901 ancestor calcuation segment_size=12 1.934 s building segment_size=14 0.202 ms segments: [34859, 3034, 228, 16, 1] log len: 873677 ancestor calcuation segment_size=14 2.311 s building segment_size=16 0.199 ms segments: [34859, 2601, 172, 10] log len: 858211 ancestor calcuation segment_size=16 2.139 s building segment_size=18 0.193 ms segments: [34859, 2280, 133, 7] log len: 847505 ancestor calcuation segment_size=18 2.301 s building segment_size=20 0.175 ms segments: [34859, 2043, 105, 5] log len: 839458 ancestor calcuation segment_size=20 2.335 s building segment_size=22 0.187 ms segments: [34859, 1847, 85, 3] log len: 832764 ancestor calcuation segment_size=22 2.500 s building segment_size=24 0.206 ms segments: [34859, 1668, 71, 2] log len: 826775 ancestor calcuation segment_size=24 2.570 s building segment_size=32 0.194 ms segments: [34859, 1230, 38, 1] log len: 811701 ancestor calcuation segment_size=32 3.091 s building segment_size=64 0.215 ms segments: [34859, 598, 9] log len: 790230 ancestor calcuation segment_size=64 4.215 s building segment_size=128 0.281 ms segments: [34859, 293, 2] log len: 779475 ancestor calcuation segment_size=128 7.573 s It seems segment size = 8 to 20 might be a reasonable choice. Reviewed By: sfilipco Differential Revision: D16660078 fbshipit-source-id: f8af64c703ce0209b9b4c09112c9bdc4a1371172
2019-08-10 02:12:58 +03:00
harness = false
[[bench]]
name = "inprocess_iddag_serde"
harness = false