Skip to content

Commit 64a30ee

Browse files
authored
Try #7653:
2 parents b2e1694 + de415cc commit 64a30ee

File tree

4 files changed

+495
-2
lines changed

4 files changed

+495
-2
lines changed

benches/Cargo.toml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ bevy_ecs = { path = "../crates/bevy_ecs" }
1616
bevy_reflect = { path = "../crates/bevy_reflect" }
1717
bevy_tasks = { path = "../crates/bevy_tasks" }
1818
bevy_utils = { path = "../crates/bevy_utils" }
19+
bevy_math = { path = "../crates/bevy_math" }
1920

2021
[profile.release]
2122
opt-level = 3
@@ -50,3 +51,8 @@ harness = false
5051
name = "iter"
5152
path = "benches/bevy_tasks/iter.rs"
5253
harness = false
54+
55+
[[bench]]
56+
name = "bezier"
57+
path = "benches/bevy_math/bezier.rs"
58+
harness = false

benches/benches/bevy_math/bezier.rs

Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
use criterion::{black_box, criterion_group, criterion_main, Criterion};
2+
3+
use bevy_math::*;
4+
5+
fn easing(c: &mut Criterion) {
6+
let cubic_bezier = CubicBezierEasing::new(vec2(0.25, 0.1), vec2(0.25, 1.0));
7+
c.bench_function("easing_1000", |b| {
8+
b.iter(|| {
9+
(0..1000).map(|i| i as f32 / 1000.0).for_each(|t| {
10+
cubic_bezier.ease(black_box(t));
11+
})
12+
});
13+
});
14+
}
15+
16+
fn fifteen_degree(c: &mut Criterion) {
17+
let bezier = Bezier::new([
18+
vec3(0.0, 0.0, 0.0),
19+
vec3(0.0, 1.0, 0.0),
20+
vec3(1.0, 0.0, 0.0),
21+
vec3(1.0, 1.0, 1.0),
22+
vec3(0.0, 0.0, 0.0),
23+
vec3(0.0, 1.0, 0.0),
24+
vec3(1.0, 0.0, 0.0),
25+
vec3(1.0, 1.0, 1.0),
26+
vec3(0.0, 0.0, 0.0),
27+
vec3(0.0, 1.0, 0.0),
28+
vec3(1.0, 0.0, 0.0),
29+
vec3(1.0, 1.0, 1.0),
30+
vec3(0.0, 0.0, 0.0),
31+
vec3(0.0, 1.0, 0.0),
32+
vec3(1.0, 0.0, 0.0),
33+
vec3(1.0, 1.0, 1.0),
34+
]);
35+
c.bench_function("fifteen_degree_position", |b| {
36+
b.iter(|| bezier.position(black_box(0.5)));
37+
});
38+
}
39+
40+
fn quadratic(c: &mut Criterion) {
41+
let bezier = QuadraticBezier3d::new([
42+
vec3a(0.0, 0.0, 0.0),
43+
vec3a(0.0, 1.0, 0.0),
44+
vec3a(1.0, 1.0, 1.0),
45+
]);
46+
c.bench_function("quadratic_position", |b| {
47+
b.iter(|| bezier.position(black_box(0.5)));
48+
});
49+
}
50+
51+
fn quadratic_vec3(c: &mut Criterion) {
52+
let bezier = Bezier::new([
53+
vec3(0.0, 0.0, 0.0),
54+
vec3(0.0, 1.0, 0.0),
55+
vec3(1.0, 1.0, 1.0),
56+
]);
57+
c.bench_function("quadratic_position_Vec3", |b| {
58+
b.iter(|| bezier.position(black_box(0.5)));
59+
});
60+
}
61+
62+
fn cubic(c: &mut Criterion) {
63+
let bezier = CubicBezier3d::new([
64+
vec3a(0.0, 0.0, 0.0),
65+
vec3a(0.0, 1.0, 0.0),
66+
vec3a(1.0, 0.0, 0.0),
67+
vec3a(1.0, 1.0, 1.0),
68+
]);
69+
c.bench_function("cubic_position", |b| {
70+
b.iter(|| bezier.position(black_box(0.5)));
71+
});
72+
}
73+
74+
fn cubic_vec3(c: &mut Criterion) {
75+
let bezier = Bezier::new([
76+
vec3(0.0, 0.0, 0.0),
77+
vec3(0.0, 1.0, 0.0),
78+
vec3(1.0, 0.0, 0.0),
79+
vec3(1.0, 1.0, 1.0),
80+
]);
81+
c.bench_function("cubic_position_Vec3", |b| {
82+
b.iter(|| bezier.position(black_box(0.5)));
83+
});
84+
}
85+
86+
criterion_group!(
87+
benches,
88+
easing,
89+
fifteen_degree,
90+
quadratic,
91+
quadratic_vec3,
92+
cubic,
93+
cubic_vec3
94+
);
95+
criterion_main!(benches);

0 commit comments

Comments
 (0)