NeuroWhAI의 잡블로그

[Rust] 크리스마스에 만든 눈 내리는 사이트 문제 해결? 본문

개발 및 공부/설계

[Rust] 크리스마스에 만든 눈 내리는 사이트 문제 해결?

NeuroWhAI 2018. 12. 29. 21:24


https://merry-christmas-wasm.herokuapp.com


확증은 없는데 경험적으로 보자면 원인은 잊혀진(?) 메모리의 재사용 때문이 아닐까 싶습니다.

문제가 되는 시나리오는 아래와 같습니다.

일단 캔버스에 쓸 메모리를 Rust에서 할당하고 forget합니다.

눈을 계속 만들면서 Vec가 내부적으로 공간 확보를 위해 재할당을 수행하는데 이때 forget했던 메모리 부분을 침범합니다.

캔버스 이미지가 제대로 나오지 않게 됩니다!

그래서 임시로 눈을 담고 있는 Vec의 재할당이 일어나지 않게 하고 캔버스에 쓸 메모리를 할당하기 전에 초기 눈 생성을 수행했더니 제대로 동작을 했습니다.

이것을 토대로 어차피 할당하는 메모리는 캔버스에 쓸 이미지 메모리 뿐이니 전용 static Vec을 만들고 forget 작업을 제거하여 이 Vec의 메모리 주소를 얻도록 했습니다.

잘 되는군여.


근데 여전히 높은 해상도로 들어가면 안될겁니다 ㅋㅋ...

그건 그냥 메모리 부족.



Comments