Skip to content

Commit 08c5679

Browse files
author
caiweiwei03
committed
add benchmark.
1 parent 5270ac9 commit 08c5679

File tree

13 files changed

+97
-16
lines changed

13 files changed

+97
-16
lines changed

.gitignore

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1-
/target
1+
target/
22
**/*.rs.bk
33
Cargo.lock
4+
5+

Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,4 +12,5 @@ members = [
1212
# internal
1313
"examples",
1414
"rsocket-test",
15+
"rsocket-benchmark",
1516
]

examples/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ path = "../rsocket-transport-tcp"
2121
path = "../rsocket-transport-websocket"
2222

2323
[dev-dependencies.tokio]
24-
version = "0.2.19"
24+
version = "0.2.20"
2525
default-features = false
2626
features = ["full"]
2727

rsocket-benchmark/Cargo.toml

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
[package]
2+
name = "rsocket_rust_benchmark"
3+
version = "0.0.0"
4+
authors = ["Jeffsky <jjeffcaii@outlook.com>"]
5+
edition = "2018"
6+
publish = false
7+
8+
[dev-dependencies]
9+
log = "0.4"
10+
futures = "0.3.4"
11+
env_logger = "0.7.1"
12+
bytes = "0.5.4"
13+
hex = "0.4.2"
14+
rand = "0.7.3"
15+
serde = "1.0.106"
16+
serde_derive = "1.0.106"
17+
criterion = "0.3.2"
18+
19+
[dev-dependencies.rsocket_rust]
20+
path = "../rsocket"
21+
features = ["frame"]
22+
23+
[dev-dependencies.rsocket_rust_transport_tcp]
24+
path = "../rsocket-transport-tcp"
25+
26+
[dev-dependencies.rsocket_rust_transport_websocket]
27+
path = "../rsocket-transport-websocket"
28+
29+
[dev-dependencies.rsocket_rust_messaging]
30+
path = "../rsocket-messaging"
31+
32+
[dev-dependencies.tokio]
33+
version = "0.2.20"
34+
default-features = false
35+
features = ["full"]
36+
37+
[[bench]]
38+
name = "bench_main"
39+
path = "benchmark_main.rs"
40+
harness = false
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
use criterion::criterion_main;
2+
3+
mod benchmarks;
4+
5+
criterion_main! {
6+
benchmarks::fibonaccis::benches,
7+
benchmarks::frames::benches,
8+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
use criterion::{black_box, criterion_group, Criterion};
2+
3+
fn fibonacci(n: u64) -> u64 {
4+
match n {
5+
0 => 1,
6+
1 => 1,
7+
n => fibonacci(n - 1) + fibonacci(n - 2),
8+
}
9+
}
10+
11+
fn fibonaccis_benchmark(c: &mut Criterion) {
12+
c.bench_function("fib 20", |b| b.iter(|| fibonacci(black_box(20))));
13+
}
14+
15+
criterion_group!(benches, fibonaccis_benchmark);
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
use bytes::{Bytes, BytesMut};
2+
use criterion::{criterion_group, Criterion};
3+
use rsocket_rust::frame::*;
4+
use rsocket_rust::utils::Writeable;
5+
6+
fn bench_unmarshal_request_response(c: &mut Criterion) {
7+
c.bench_function("unmarshal request_response", |b| {
8+
b.iter(|| {
9+
let f = RequestResponse::builder(1234, 0)
10+
.set_data(Bytes::from("Hello World"))
11+
.set_metadata(Bytes::from("Foobar"))
12+
.build();
13+
let mut bf = BytesMut::with_capacity(f.len() as usize);
14+
f.write_to(&mut bf);
15+
})
16+
});
17+
}
18+
19+
criterion_group!(benches, bench_unmarshal_request_response);
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
pub mod fibonaccis;
2+
pub mod frames;

rsocket-messaging/src/lib.rs

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,3 @@
1-
#[macro_use]
2-
extern crate log;
3-
41
mod misc;
52
mod requester;
63

rsocket-messaging/src/requester.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
use super::misc::{marshal, unmarshal};
2-
use bytes::{BufMut, BytesMut};
2+
use bytes::BytesMut;
33
use rsocket_rust::error::RSocketError;
44
use rsocket_rust::extension::{
55
CompositeMetadata, MimeType, RoutingMetadata, MIME_APPLICATION_JSON,

0 commit comments

Comments
 (0)