mirror of https://github.com/fafhrd91/actix-net
				
				
				
			
		
			
				
	
	
		
			60 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Rust
		
	
	
	
			
		
		
	
	
			60 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Rust
		
	
	
	
#![allow(missing_docs)]
 | 
						|
 | 
						|
use bytes::BytesMut;
 | 
						|
use criterion::{criterion_group, criterion_main, Criterion};
 | 
						|
 | 
						|
const INPUT: &[u8] = include_bytes!("./lorem.txt");
 | 
						|
 | 
						|
fn bench_lines_codec(c: &mut Criterion) {
 | 
						|
    let mut decode_group = c.benchmark_group("lines decode");
 | 
						|
 | 
						|
    decode_group.bench_function("actix", |b| {
 | 
						|
        b.iter(|| {
 | 
						|
            use actix_codec::Decoder as _;
 | 
						|
 | 
						|
            let mut codec = actix_codec::LinesCodec::default();
 | 
						|
            let mut buf = BytesMut::from(INPUT);
 | 
						|
            while let Ok(Some(_bytes)) = codec.decode_eof(&mut buf) {}
 | 
						|
        });
 | 
						|
    });
 | 
						|
 | 
						|
    decode_group.bench_function("tokio", |b| {
 | 
						|
        b.iter(|| {
 | 
						|
            use tokio_util::codec::Decoder as _;
 | 
						|
 | 
						|
            let mut codec = tokio_util::codec::LinesCodec::new();
 | 
						|
            let mut buf = BytesMut::from(INPUT);
 | 
						|
            while let Ok(Some(_bytes)) = codec.decode_eof(&mut buf) {}
 | 
						|
        });
 | 
						|
    });
 | 
						|
 | 
						|
    decode_group.finish();
 | 
						|
 | 
						|
    let mut encode_group = c.benchmark_group("lines encode");
 | 
						|
 | 
						|
    encode_group.bench_function("actix", |b| {
 | 
						|
        b.iter(|| {
 | 
						|
            use actix_codec::Encoder as _;
 | 
						|
 | 
						|
            let mut codec = actix_codec::LinesCodec::default();
 | 
						|
            let mut buf = BytesMut::new();
 | 
						|
            codec.encode("123", &mut buf).unwrap();
 | 
						|
        });
 | 
						|
    });
 | 
						|
 | 
						|
    encode_group.bench_function("tokio", |b| {
 | 
						|
        b.iter(|| {
 | 
						|
            use tokio_util::codec::Encoder as _;
 | 
						|
 | 
						|
            let mut codec = tokio_util::codec::LinesCodec::new();
 | 
						|
            let mut buf = BytesMut::new();
 | 
						|
            codec.encode("123", &mut buf).unwrap();
 | 
						|
        });
 | 
						|
    });
 | 
						|
 | 
						|
    encode_group.finish();
 | 
						|
}
 | 
						|
 | 
						|
criterion_group!(benches, bench_lines_codec);
 | 
						|
criterion_main!(benches);
 |