From 6b58efa330190bb5ec355405894ebb9aee7b6034 Mon Sep 17 00:00:00 2001 From: Kevin K Date: Sat, 4 Mar 2017 14:53:15 -0500 Subject: [PATCH] tests: adds some minor benches for adding args by ref or moving --- benches/02_simple.rs | 65 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 64 insertions(+), 1 deletion(-) diff --git a/benches/02_simple.rs b/benches/02_simple.rs index eab94b37..010fa866 100644 --- a/benches/02_simple.rs +++ b/benches/02_simple.rs @@ -3,7 +3,7 @@ extern crate clap; extern crate test; -use clap::App; +use clap::{App, Arg}; use test::Bencher; @@ -25,6 +25,69 @@ fn build_app(b: &mut Bencher) { b.iter(|| create_app!()); } +#[bench] +fn add_flag(b: &mut Bencher) { + fn build_app() -> App<'static, 'static> { + App::new("claptests") + } + + b.iter(|| build_app().arg(Arg::from_usage("-s, --some 'something'"))); +} + +#[bench] +fn add_flag_ref(b: &mut Bencher) { + fn build_app() -> App<'static, 'static> { + App::new("claptests") + } + + b.iter(|| { + let arg = Arg::from_usage("-s, --some 'something'"); + build_app().arg(&arg) + }); +} + +#[bench] +fn add_opt(b: &mut Bencher) { + fn build_app() -> App<'static, 'static> { + App::new("claptests") + } + + b.iter(|| build_app().arg(Arg::from_usage("-s, --some 'something'"))); +} + +#[bench] +fn add_opt_ref(b: &mut Bencher) { + fn build_app() -> App<'static, 'static> { + App::new("claptests") + } + + b.iter(|| { + let arg = Arg::from_usage("-s, --some 'something'"); + build_app().arg(&arg) + }); +} + +#[bench] +fn add_pos(b: &mut Bencher) { + fn build_app() -> App<'static, 'static> { + App::new("claptests") + } + + b.iter(|| build_app().arg(Arg::with_name("some"))); +} + +#[bench] +fn add_pos_ref(b: &mut Bencher) { + fn build_app() -> App<'static, 'static> { + App::new("claptests") + } + + b.iter(|| { + let arg = Arg::with_name("some"); + build_app().arg(&arg) + }); +} + #[bench] fn parse_clean(b: &mut Bencher) { b.iter(|| create_app!().get_matches_from(vec![""]));