avoid segment allocations while parsing

This commit is contained in:
MaxOhn
2021-11-06 13:12:47 +01:00
parent 4a1d128ad6
commit 94d743d3e7
5 changed files with 49 additions and 52 deletions
+13 -13
View File
@@ -357,14 +357,14 @@ fn custom_osu() {
let accum = start.elapsed();
// * Tiny benchmark for map parsing
// let mut accum = accum;
let mut accum = accum;
// for _ in 0..iters {
// let file = File::open(path).unwrap();
// let start = Instant::now();
// let _map = Beatmap::parse(file).unwrap();
// accum += start.elapsed();
// }
for _ in 0..iters {
let file = File::open(path).unwrap();
let start = Instant::now();
let _map = Beatmap::parse(file).unwrap();
accum += start.elapsed();
}
println!("Parsing average: {:?}", accum / iters);
@@ -375,13 +375,13 @@ fn custom_osu() {
let accum = start.elapsed();
// * Tiny benchmark for pp calculation
let mut accum = accum;
// let mut accum = accum;
for _ in 0..iters {
let start = Instant::now();
let _result = crate::OsuPP::new(&map).mods(0).calculate();
accum += start.elapsed();
}
// for _ in 0..iters {
// let start = Instant::now();
// let _result = crate::OsuPP::new(&map).mods(0).calculate();
// accum += start.elapsed();
// }
println!("{:#?}", result);
println!("Calculation average: {:?}", accum / iters);
+2 -2
View File
@@ -48,7 +48,7 @@ impl OsuObject {
HitObjectKind::Slider {
pixel_len,
repeats,
curve_points,
control_points,
} => {
// Key values which are computed here
let mut lazy_end_pos = h.pos;
@@ -68,7 +68,7 @@ impl OsuObject {
}
// Build the curve w.r.t. the curve points
let curve = Curve::new(curve_points, *pixel_len, slider_buf);
let curve = Curve::new(control_points, *pixel_len, slider_buf);
let velocity =
(BASE_SCORING_DISTANCE * map.slider_mult * slider_state.slider_velocity)