글 수 83
저도 큰 버퍼를 하나두고 몰아서 처리해볼 생각으로 가끔씩 어떻게 만들까 고민하다가
위에 답변글을 여러번 읽어봤습니다..
윗글을 보고 메모리의 해제/할당/병합을 처리하는 곳은 힙라이브러리에서
인덱스관리로 해제/병합을 처리하고 실제VB에는 손을 안대고 처리하는 것으로 이해했습니다.
한가지 궁금한점이 있는데요.
우선은 힙라이브러리단에서 최대한 단편화가 안생기게끔 똑똑하게 빈자리를 적절히 채워줘야 하겠지만 상황에 따라서는 메모리 단편화가 생길수도 있을꺼라는 생각이 듭니다.
이 단편화를 제거하기위해 VB를 재정리하고 힙라입의 인덱스를 재정렬하자니 순간적인 락이 걸릴것 같고..안하자니..메모리가 새는듯한 기분도 들고..-_-;;;
(아..물론 힙라입의 인덱스와 짝을 이루는 실제 메모리번지에 대한 테이블을 둔다는 전제입니다. 윈도우의 가상메모리처럼..)
1시간 정도마다 해준다면..크게 눈에 튈것같지는 않지만서도..
정리하자면..실제 남은 용량의 합은 원하는것보다 더 있지만 단편화때문에
쓰지 못하는 경우를 어떻게 처리하는가 입니다.
쓰면서 생각해보니..다른 힙라입 구현들은 어떻게 처리했는가에 대해서도 찾아봐야겠네요.
항상 건승하시길 빕니다.
위에 답변글을 여러번 읽어봤습니다..
윗글을 보고 메모리의 해제/할당/병합을 처리하는 곳은 힙라이브러리에서
인덱스관리로 해제/병합을 처리하고 실제VB에는 손을 안대고 처리하는 것으로 이해했습니다.
한가지 궁금한점이 있는데요.
우선은 힙라이브러리단에서 최대한 단편화가 안생기게끔 똑똑하게 빈자리를 적절히 채워줘야 하겠지만 상황에 따라서는 메모리 단편화가 생길수도 있을꺼라는 생각이 듭니다.
이 단편화를 제거하기위해 VB를 재정리하고 힙라입의 인덱스를 재정렬하자니 순간적인 락이 걸릴것 같고..안하자니..메모리가 새는듯한 기분도 들고..-_-;;;
(아..물론 힙라입의 인덱스와 짝을 이루는 실제 메모리번지에 대한 테이블을 둔다는 전제입니다. 윈도우의 가상메모리처럼..)
1시간 정도마다 해준다면..크게 눈에 튈것같지는 않지만서도..
정리하자면..실제 남은 용량의 합은 원하는것보다 더 있지만 단편화때문에
쓰지 못하는 경우를 어떻게 처리하는가 입니다.
쓰면서 생각해보니..다른 힙라입 구현들은 어떻게 처리했는가에 대해서도 찾아봐야겠네요.
항상 건승하시길 빕니다.
일단 여기까지가 단편화를 줄이기 위한 최선의 노력이고, 별도의 단편화를 위한 작업은 하지 않습니다. 단편화가 어느 정도 생기는지 체크해보진 않았지만 크게 문제가 되리라는 생각은 안합니다. 일단 두개의 게임에서 문제없이 돌아가고 있기 때문에 더 신경을 쓰지는 않게 되네요. 여러가지 좋은 방법들이 있겠지만 게임을 만드는게 궁극적인 목적이기에 힙에만 전적으로 투자할 수는 없는 노릇이니까요.