Jun Wu
|
8029cd3878
|
minibytes: port benchmark from tokio/bytes
Summary:
Performance looks okay comparing with tokio/bytes v0.5.4:
minibytes:
test clone_arc_vec ... bench: 16,542 ns/iter (+/- 1,524)
test clone_shared ... bench: 16,211 ns/iter (+/- 596)
test clone_static ... bench: 1,437 ns/iter (+/- 502)
test deref_shared ... bench: 367 ns/iter (+/- 101)
test deref_static ... bench: 366 ns/iter (+/- 1)
test deref_unique ... bench: 367 ns/iter (+/- 4)
test from_long_slicd ... bench: 91 ns/iter (+/- 18) = 1406 MB/s
test slice_empty ... bench: 10,382 ns/iter (+/- 104)
test slice_short_from_arc ... bench: 23,823 ns/iter (+/- 1,411)
tokio/bytes:
test clone_arc_vec ... bench: 16,213 ns/iter (+/- 1,864)
test clone_shared ... bench: 18,685 ns/iter (+/- 634)
test clone_static ... bench: 3,983 ns/iter (+/- 163)
test deref_shared ... bench: 366 ns/iter (+/- 26)
test deref_static ... bench: 373 ns/iter (+/- 36)
test deref_unique ... bench: 391 ns/iter (+/- 33)
test from_long_slice ... bench: 67 ns/iter (+/- 7) = 1910 MB/s
test slice_empty ... bench: 15,149 ns/iter (+/- 1,708)
test slice_short_from_arc ... bench: 36,541 ns/iter (+/- 3,485)
clone_static is faster because minibytes don't call into vtable's clone.
from_long_slice is slower because minibytes uses Arc unconditionally while bytes
can avoid Arc overhead if refcount is 1.
Reviewed By: DurhamG
Differential Revision: D19770857
fbshipit-source-id: 5bafcc57a38c68baccfcafd3906f1a47b2bf4530
|
2020-02-07 14:21:39 -08:00 |
|