bindings/rust/standard/bench/benches/connection_creation.rs (32 lines of code) (raw):

// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 use criterion::{criterion_group, criterion_main, Criterion}; use s2n_tls::{ config::Config, connection::Builder, enums::Mode, pool::{ConfigPool, ConfigPoolBuilder, PooledConnection}, }; use std::sync::Arc; fn connection_wipe(connection_pool: &Arc<ConfigPool>) { // get a connection from the pool let conn = PooledConnection::new(connection_pool).unwrap(); // "drop" the connection, wiping it and returning it to the pool drop(conn); } fn connection_new(config: &Config) { let conn = config .build_connection(s2n_tls::enums::Mode::Server) .unwrap(); drop(conn); } fn connection_creation(c: &mut Criterion) { let mut group = c.benchmark_group("Connection Creation"); let config = s2n_tls::config::Builder::new().build().unwrap(); let connection_pool = ConfigPoolBuilder::new(Mode::Server, config.clone()).build(); group.bench_function("connection reuse", |b| { b.iter(|| connection_wipe(&connection_pool)); }); group.bench_function("connection allocation", |b| { b.iter(|| connection_new(&config)); }); group.finish(); } criterion_group!(benches, connection_creation); criterion_main!(benches);