benchkmarks for execute server rack heavy (#3421)
* benchkmarks for execute server rack heavy Signed-off-by: Jess Frazelle <github@jessfraz.com> * updates Signed-off-by: Jess Frazelle <github@jessfraz.com> * fixes Signed-off-by: Jess Frazelle <github@jessfraz.com> * fixes Signed-off-by: Jess Frazelle <github@jessfraz.com> * updates Signed-off-by: Jess Frazelle <github@jessfraz.com> * cluppy Signed-off-by: Jess Frazelle <github@jessfraz.com> --------- Signed-off-by: Jess Frazelle <github@jessfraz.com>
This commit is contained in:
		@ -116,3 +116,11 @@ required-features = ["lsp-test-util"]
 | 
			
		||||
name = "lsp_semantic_tokens_benchmark_iai"
 | 
			
		||||
harness = false
 | 
			
		||||
required-features = ["lsp-test-util"]
 | 
			
		||||
 | 
			
		||||
[[bench]]
 | 
			
		||||
name = "executor_benchmark_criterion"
 | 
			
		||||
harness = false
 | 
			
		||||
 | 
			
		||||
[[bench]]
 | 
			
		||||
name = "executor_benchmark_iai"
 | 
			
		||||
harness = false
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										36
									
								
								src/wasm-lib/kcl/benches/executor_benchmark_criterion.rs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								src/wasm-lib/kcl/benches/executor_benchmark_criterion.rs
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,36 @@
 | 
			
		||||
use criterion::{criterion_group, criterion_main, BenchmarkId, Criterion};
 | 
			
		||||
use kcl_lib::test_server;
 | 
			
		||||
use tokio::runtime::Runtime;
 | 
			
		||||
 | 
			
		||||
pub fn bench_execute(c: &mut Criterion) {
 | 
			
		||||
    for (name, code) in [
 | 
			
		||||
        ("big_kitt", KITT_PROGRAM),
 | 
			
		||||
        ("cube", CUBE_PROGRAM),
 | 
			
		||||
        ("server_rack_heavy", SERVER_RACK_HEAVY_PROGRAM),
 | 
			
		||||
    ] {
 | 
			
		||||
        let mut group = c.benchmark_group("executor");
 | 
			
		||||
        // Configure Criterion.rs to detect smaller differences and increase sample size to improve
 | 
			
		||||
        // precision and counteract the resulting noise.
 | 
			
		||||
        group.sample_size(10);
 | 
			
		||||
        group.bench_with_input(BenchmarkId::new("execute_", name), &code, |b, &s| {
 | 
			
		||||
            let rt = Runtime::new().unwrap();
 | 
			
		||||
 | 
			
		||||
            // Spawn a future onto the runtime
 | 
			
		||||
            b.iter(|| {
 | 
			
		||||
                rt.block_on(test_server::execute_and_snapshot(
 | 
			
		||||
                    s,
 | 
			
		||||
                    kcl_lib::settings::types::UnitLength::Mm,
 | 
			
		||||
                ))
 | 
			
		||||
                .unwrap();
 | 
			
		||||
            });
 | 
			
		||||
        });
 | 
			
		||||
        group.finish();
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
criterion_group!(benches, bench_execute);
 | 
			
		||||
criterion_main!(benches);
 | 
			
		||||
 | 
			
		||||
const KITT_PROGRAM: &str = include_str!("../../tests/executor/inputs/kittycad_svg.kcl");
 | 
			
		||||
const CUBE_PROGRAM: &str = include_str!("../../tests/executor/inputs/cube.kcl");
 | 
			
		||||
const SERVER_RACK_HEAVY_PROGRAM: &str = include_str!("../../tests/executor/inputs/server-rack-heavy.kcl");
 | 
			
		||||
							
								
								
									
										16
									
								
								src/wasm-lib/kcl/benches/executor_benchmark_iai.rs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								src/wasm-lib/kcl/benches/executor_benchmark_iai.rs
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,16 @@
 | 
			
		||||
use iai::black_box;
 | 
			
		||||
 | 
			
		||||
async fn execute_server_rack_heavy() {
 | 
			
		||||
    let code = SERVER_RACK_HEAVY_PROGRAM;
 | 
			
		||||
    black_box(
 | 
			
		||||
        kcl_lib::test_server::execute_and_snapshot(code, kcl_lib::settings::types::UnitLength::Mm)
 | 
			
		||||
            .await
 | 
			
		||||
            .unwrap(),
 | 
			
		||||
    );
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
iai::main! {
 | 
			
		||||
    execute_server_rack_heavy,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
const SERVER_RACK_HEAVY_PROGRAM: &str = include_str!("../../tests/executor/inputs/server-rack-heavy.kcl");
 | 
			
		||||
@ -18,6 +18,8 @@ use crate::{
 | 
			
		||||
pub async fn extrude(args: Args) -> Result<KclValue, KclError> {
 | 
			
		||||
    let (length, sketch_group_set) = args.get_number_sketch_group_set()?;
 | 
			
		||||
 | 
			
		||||
    println!("extrude");
 | 
			
		||||
 | 
			
		||||
    let result = inner_extrude(length, sketch_group_set, args).await?;
 | 
			
		||||
 | 
			
		||||
    Ok(result.into())
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										142
									
								
								src/wasm-lib/output.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										142
									
								
								src/wasm-lib/output.txt
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,142 @@
 | 
			
		||||
 | 
			
		||||
running 0 tests
 | 
			
		||||
 | 
			
		||||
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 16 filtered out; finished in 0.00s
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
running 0 tests
 | 
			
		||||
 | 
			
		||||
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 824 filtered out; finished in 0.00s
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
running 0 tests
 | 
			
		||||
 | 
			
		||||
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
running 0 tests
 | 
			
		||||
 | 
			
		||||
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 1 filtered out; finished in 0.00s
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
running 0 tests
 | 
			
		||||
 | 
			
		||||
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
running 0 tests
 | 
			
		||||
 | 
			
		||||
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
running 1 test
 | 
			
		||||
extrude
 | 
			
		||||
extrude
 | 
			
		||||
extrude
 | 
			
		||||
extrude
 | 
			
		||||
extrude
 | 
			
		||||
extrude
 | 
			
		||||
extrude
 | 
			
		||||
extrude
 | 
			
		||||
extrude
 | 
			
		||||
extrude
 | 
			
		||||
extrude
 | 
			
		||||
extrude
 | 
			
		||||
extrude
 | 
			
		||||
extrude
 | 
			
		||||
extrude
 | 
			
		||||
extrude
 | 
			
		||||
extrude
 | 
			
		||||
extrude
 | 
			
		||||
extrude
 | 
			
		||||
extrude
 | 
			
		||||
extrude
 | 
			
		||||
extrude
 | 
			
		||||
extrude
 | 
			
		||||
extrude
 | 
			
		||||
extrude
 | 
			
		||||
extrude
 | 
			
		||||
extrude
 | 
			
		||||
extrude
 | 
			
		||||
extrude
 | 
			
		||||
extrude
 | 
			
		||||
extrude
 | 
			
		||||
extrude
 | 
			
		||||
extrude
 | 
			
		||||
extrude
 | 
			
		||||
extrude
 | 
			
		||||
extrude
 | 
			
		||||
extrude
 | 
			
		||||
extrude
 | 
			
		||||
extrude
 | 
			
		||||
extrude
 | 
			
		||||
extrude
 | 
			
		||||
extrude
 | 
			
		||||
extrude
 | 
			
		||||
extrude
 | 
			
		||||
extrude
 | 
			
		||||
extrude
 | 
			
		||||
extrude
 | 
			
		||||
extrude
 | 
			
		||||
extrude
 | 
			
		||||
extrude
 | 
			
		||||
extrude
 | 
			
		||||
extrude
 | 
			
		||||
extrude
 | 
			
		||||
extrude
 | 
			
		||||
extrude
 | 
			
		||||
extrude
 | 
			
		||||
extrude
 | 
			
		||||
extrude
 | 
			
		||||
extrude
 | 
			
		||||
extrude
 | 
			
		||||
extrude
 | 
			
		||||
test visuals::server_rack_heavy has been running for over 60 seconds
 | 
			
		||||
extrude
 | 
			
		||||
extrude
 | 
			
		||||
extrude
 | 
			
		||||
extrude
 | 
			
		||||
extrude
 | 
			
		||||
extrude
 | 
			
		||||
extrude
 | 
			
		||||
extrude
 | 
			
		||||
extrude
 | 
			
		||||
extrude
 | 
			
		||||
extrude
 | 
			
		||||
extrude
 | 
			
		||||
extrude
 | 
			
		||||
extrude
 | 
			
		||||
extrude
 | 
			
		||||
extrude
 | 
			
		||||
extrude
 | 
			
		||||
extrude
 | 
			
		||||
extrude
 | 
			
		||||
extrude
 | 
			
		||||
extrude
 | 
			
		||||
extrude
 | 
			
		||||
extrude
 | 
			
		||||
extrude
 | 
			
		||||
extrude
 | 
			
		||||
extrude
 | 
			
		||||
extrude
 | 
			
		||||
extrude
 | 
			
		||||
extrude
 | 
			
		||||
extrude
 | 
			
		||||
extrude
 | 
			
		||||
extrude
 | 
			
		||||
extrude
 | 
			
		||||
extrude
 | 
			
		||||
extrude
 | 
			
		||||
extrude
 | 
			
		||||
extrude
 | 
			
		||||
extrude
 | 
			
		||||
extrude
 | 
			
		||||
test visuals::server_rack_heavy ... FAILED
 | 
			
		||||
 | 
			
		||||
failures:
 | 
			
		||||
 | 
			
		||||
failures:
 | 
			
		||||
    visuals::server_rack_heavy
 | 
			
		||||
 | 
			
		||||
test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 142 filtered out; finished in 279.58s
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										1869
									
								
								src/wasm-lib/tests/executor/inputs/server-rack-heavy.kcl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1869
									
								
								src/wasm-lib/tests/executor/inputs/server-rack-heavy.kcl
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
		Reference in New Issue
	
	Block a user