try execute bench with walltime (#5772)
* try execute bench Signed-off-by: Jess Frazelle <github@jessfraz.com> * timeout longer Signed-off-by: Jess Frazelle <github@jessfraz.com> * timeout longer Signed-off-by: Jess Frazelle <github@jessfraz.com> * updates Signed-off-by: Jess Frazelle <github@jessfraz.com> * updates Signed-off-by: Jess Frazelle <github@jessfraz.com> --------- Signed-off-by: Jess Frazelle <github@jessfraz.com>
This commit is contained in:
3
.github/workflows/cargo-bench.yml
vendored
3
.github/workflows/cargo-bench.yml
vendored
@ -50,12 +50,13 @@ jobs:
|
|||||||
- name: Build the benchmark target(s)
|
- name: Build the benchmark target(s)
|
||||||
run: |
|
run: |
|
||||||
cd rust
|
cd rust
|
||||||
cargo codspeed build
|
cargo codspeed build --measurement-mode walltime
|
||||||
- name: Run the benchmarks
|
- name: Run the benchmarks
|
||||||
uses: CodSpeedHQ/action@v3
|
uses: CodSpeedHQ/action@v3
|
||||||
with:
|
with:
|
||||||
working-directory: rust
|
working-directory: rust
|
||||||
run: cargo codspeed run
|
run: cargo codspeed run
|
||||||
token: ${{ secrets.CODSPEED_TOKEN }}
|
token: ${{ secrets.CODSPEED_TOKEN }}
|
||||||
|
mode: walltime
|
||||||
env:
|
env:
|
||||||
KITTYCAD_API_TOKEN: ${{ secrets.KITTYCAD_API_TOKEN }}
|
KITTYCAD_API_TOKEN: ${{ secrets.KITTYCAD_API_TOKEN }}
|
||||||
|
|||||||
@ -45,7 +45,7 @@ fn run_benchmarks(c: &mut Criterion) {
|
|||||||
|
|
||||||
let benchmark_dirs = discover_benchmark_dirs(&base_dir);
|
let benchmark_dirs = discover_benchmark_dirs(&base_dir);
|
||||||
|
|
||||||
//let rt = tokio::runtime::Runtime::new().unwrap();
|
let rt = tokio::runtime::Runtime::new().unwrap();
|
||||||
|
|
||||||
for dir in benchmark_dirs {
|
for dir in benchmark_dirs {
|
||||||
let dir_name = dir.file_name().unwrap().to_string_lossy().to_string();
|
let dir_name = dir.file_name().unwrap().to_string_lossy().to_string();
|
||||||
@ -67,35 +67,25 @@ fn run_benchmarks(c: &mut Criterion) {
|
|||||||
.sample_size(10)
|
.sample_size(10)
|
||||||
.measurement_time(std::time::Duration::from_secs(1)); // Short measurement time to keep it from running in parallel
|
.measurement_time(std::time::Duration::from_secs(1)); // Short measurement time to keep it from running in parallel
|
||||||
|
|
||||||
//let program = kcl_lib::Program::parse_no_errs(&input_content).unwrap();
|
let program = kcl_lib::Program::parse_no_errs(&input_content).unwrap();
|
||||||
|
|
||||||
group.bench_function(format!("parse_{}", dir_name), |b| {
|
group.bench_function(format!("parse_{}", dir_name), |b| {
|
||||||
b.iter(|| kcl_lib::Program::parse_no_errs(black_box(&input_content)).unwrap())
|
b.iter(|| kcl_lib::Program::parse_no_errs(black_box(&input_content)).unwrap())
|
||||||
});
|
});
|
||||||
|
|
||||||
/*group.bench_function(format!("execute_{}", dir_name), |b| {
|
group.bench_function(format!("execute_{}", dir_name), |b| {
|
||||||
b.iter(|| {
|
b.iter(|| {
|
||||||
let mut result = Err(());
|
if let Err(err) = rt.block_on(async {
|
||||||
for _ in 0..5 {
|
let ctx = kcl_lib::ExecutorContext::new_with_default_client(Default::default()).await?;
|
||||||
// Try up to 3 times
|
let mut exec_state = kcl_lib::ExecState::new(&ctx.settings);
|
||||||
match rt.block_on(async {
|
ctx.run(black_box(&program), &mut exec_state).await?;
|
||||||
let ctx = kcl_lib::ExecutorContext::new_with_default_client(Default::default()).await?;
|
ctx.close().await;
|
||||||
let mut exec_state = kcl_lib::ExecState::new(&ctx.settings);
|
Ok::<(), anyhow::Error>(())
|
||||||
ctx.run(black_box(&program), &mut exec_state).await?;
|
}) {
|
||||||
ctx.close().await;
|
panic!("Failed to execute program: {}", err);
|
||||||
Ok::<(), anyhow::Error>(())
|
|
||||||
}) {
|
|
||||||
Ok(value) => {
|
|
||||||
result = Ok(value);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
Err(_) => continue,
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
result.unwrap()
|
|
||||||
})
|
})
|
||||||
});*/
|
});
|
||||||
|
|
||||||
group.finish();
|
group.finish();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user