use lala::cli::parse_args;
use std::time::Instant;
fn main() {
let iterations = 1000;
let mut total_time = std::time::Duration::ZERO;
for _ in 0..100 {
let _ = parse_args(vec!["lala", "test.txt"]);
}
println!("パース処理のパフォーマンステスト({iterations}回の平均)");
let start = Instant::now();
for _ in 0..iterations {
let _ = parse_args(vec!["lala", "test.txt"]);
}
let elapsed = start.elapsed();
let avg = elapsed / iterations;
total_time += elapsed;
println!("ファイルパス: 平均 {avg:?} / 回");
let start = Instant::now();
for _ in 0..iterations {
let _ = parse_args(vec!["lala", "./src"]);
}
let elapsed = start.elapsed();
let avg = elapsed / iterations;
total_time += elapsed;
println!("ディレクトリパス: 平均 {avg:?} / 回");
let start = Instant::now();
for _ in 0..iterations {
let _ = parse_args(vec!["lala"]);
}
let elapsed = start.elapsed();
let avg = elapsed / iterations;
total_time += elapsed;
println!("引数なし: 平均 {avg:?} / 回");
let overall_avg = total_time / (iterations * 3);
println!("\n全体の平均: {overall_avg:?} / 回");
if overall_avg.as_micros() < 10000 {
println!("✓ パフォーマンス要件を満たしています(10ms以下)");
} else {
println!("✗ パフォーマンス要件を満たしていません(10ms以上)");
}
}