2019-04-26 02:59:48 +03:00
|
|
|
[package]
|
|
|
|
name = "dag"
|
|
|
|
version = "0.1.0"
|
|
|
|
edition = "2018"
|
|
|
|
|
|
|
|
[dependencies]
|
|
|
|
indexedlog = { path = "../indexedlog" }
|
2020-02-28 20:19:41 +03:00
|
|
|
minibytes = { path = "../minibytes" }
|
2019-04-26 02:59:48 +03:00
|
|
|
vlqencoding = { path = "../vlqencoding" }
|
|
|
|
|
2019-11-22 19:51:58 +03:00
|
|
|
anyhow = "1.0.20"
|
2019-09-14 05:26:34 +03:00
|
|
|
bitflags = "1"
|
2019-04-26 02:59:48 +03:00
|
|
|
byteorder = "1.2.7"
|
|
|
|
fs2 = "0.4.3"
|
2019-05-03 23:30:29 +03:00
|
|
|
indexmap = "1.0.1"
|
2019-12-18 06:25:48 +03:00
|
|
|
serde = { version = "1", features = ["derive"] }
|
2019-04-26 02:59:48 +03:00
|
|
|
tempfile = "3.0.7"
|
|
|
|
|
|
|
|
[dev-dependencies]
|
2020-01-23 06:26:26 +03:00
|
|
|
bindag = { path = "bindag" }
|
2019-05-03 23:30:29 +03:00
|
|
|
drawdag = { path = "../drawdag" }
|
2019-04-26 02:59:50 +03:00
|
|
|
minibench = { path = "../minibench" }
|
2020-03-24 23:54:12 +03:00
|
|
|
once_cell = "1"
|
2019-10-31 19:38:54 +03:00
|
|
|
quickcheck = "0.9"
|
2019-04-26 02:59:50 +03:00
|
|
|
|
|
|
|
[[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]]
|
2019-09-14 05:26:34 +03:00
|
|
|
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
|