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:
Jess Frazelle
2024-08-13 22:45:42 -07:00
committed by GitHub
parent 4d00dddfd8
commit a23bd1f034
6 changed files with 2073 additions and 0 deletions

View File

@ -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

View 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");

View 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");

View File

@ -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
View 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

File diff suppressed because it is too large Load Diff