Code
This commit is contained in:
57
tests/benchmarks.rs
Normal file
57
tests/benchmarks.rs
Normal file
@@ -0,0 +1,57 @@
|
||||
use gtk::prelude::*;
|
||||
use gtk::{gdk, gdk_pixbuf};
|
||||
use gstreamer as gst;
|
||||
use gstreamer_player as gst_player;
|
||||
use std::time::Instant;
|
||||
|
||||
#[cfg(test)]
|
||||
mod benchmarks {
|
||||
use super::*;
|
||||
use std::sync::Once;
|
||||
|
||||
static INIT: Once = Once::new();
|
||||
|
||||
fn init() {
|
||||
INIT.call_once(|| {
|
||||
gtk::init().unwrap();
|
||||
gst::init().unwrap();
|
||||
});
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn bench_pixbuf_loading() {
|
||||
init();
|
||||
let start = Instant::now();
|
||||
// Create a 1x1 pixbuf to simulate loading
|
||||
let _pixbuf = gdk_pixbuf::Pixbuf::new(gdk_pixbuf::Colorspace::Rgb, false, 8, 220, 220).unwrap();
|
||||
println!("Pixbuf creation: {:?}", start.elapsed());
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn bench_animation_creation() {
|
||||
init();
|
||||
let start = Instant::now();
|
||||
let _anim = gdk_pixbuf::PixbufSimpleAnim::new(220, 220, 12.0);
|
||||
println!("Animation creation: {:?}", start.elapsed());
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn bench_player_creation() {
|
||||
init();
|
||||
let start = Instant::now();
|
||||
let _player = gst_player::Player::new(None, None);
|
||||
println!("GstPlayer creation: {:?}", start.elapsed());
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn bench_coord_calculation() {
|
||||
use rand::Rng;
|
||||
let start = Instant::now();
|
||||
let mut rng = rand::thread_rng();
|
||||
for _ in 0..1000 {
|
||||
let _x = rng.gen_range(0..1920);
|
||||
let _y = rng.gen_range(0..1080);
|
||||
}
|
||||
println!("1000 RNG calculations: {:?}", start.elapsed());
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user