800 600 에선 js 로도 60fps 떠서 1920 1080 으로 바꾸고 돌려보니 20fps 정도 뜨는데
행님들이 댓글로 알려준걸로 wasm 에서
#[wasm_bindgen]
pub fn random_colors(data: &mut [u8], width: u32, height: u32) {
let mut rng = rand::thread_rng();
// for y in 0..height {
// for x in 0..width {
// let i = (width * 4 * y + 4 * x) as usize;
// data[(i + 0) as usize] = rng.gen::<u8>();
// data[(i + 1) as usize] = rng.gen::<u8>();
// data[(i + 2) as usize] = rng.gen::<u8>();
// data[(i + 3) as usize] = 0xff;
// }
// }
// for a in data.chunks_exact_mut(4) {
// a[0] = rng.gen::<u8>();
// a[1] = rng.gen::<u8>();
// a[2] = rng.gen::<u8>();
// a[3] = 0xff;
// }
rng.fill_bytes(data);
for i in 0..width * height {
data[(i * 4 + 3) as usize] = 0xff;
}
}
저거만 해줘도 걍 50fps 찍어버리네 ㄷㄷ
take skip 은 어케해야할지 모르겠어서 적용 못함 ㅠㅠ
for v in data.iter().skip(3).take(1) {
*v = 0xff;
}
뭐 이렇게 하는건가? 에러뜨네 ㅠㅠ
for a in data.iter_mut().skip(3).step_by(4)
그리고 그냥 랜덤 노이즈 만드는데 암호학적으로 안전한거까지는 필요없잖아 ThreadRng 대신 알고리즘 더빠른거로 바꿔보셈
오...
코드 볼래
Wasm 성능 그냥 js랑 별차이 없다고 들었는데 아닌가봄? 성능차이 있음?
있겠냐 러슬람들 뇌이징되니까 더 좋다고 하는거지
직접 돌려보니까 동일알고리즘으로 해도 wasm이 js보다 fps 1.5-2배정도 뽑아주던디 예전에 말 나왔던것도 들이는 노력에 비해 크게 차이없어서 js로 해도 괜찮겠다 정도였지 2배정도 차이는 났음