해결된 질문
작성
·
511
3
안녕하세요
메모리 풀 관련된 질문이 2개가 있습니다
질문 1)
25:40쯤에 메모리 사이즈가 큰 경우에는 메모리 풀을 사용하지 않는다고 하셨는데요
큰것도 할당 해제가 빈번할경우가 있을텐데
이런 경우에도 메모리 풀을 사용하지 않는다는 말씀이신건가요?
질문 2)
요즘에는 메모리 풀을 사용안한다고 하셨는데요
그 말인즉 객체를 new delete를 해서 바로바로 사용해도 된다는 말씀이신건가요??
특별한 이유가 있을까요?
답변 1
3
1)
메모리 풀을 사용하는 가장 큰 이유가 메모리 파편화 때문이고
또 비슷한 크기의 메모리를 재사용하고자 하는 목적인데
메모리 크기가 너무 큰 애들은 위 목적에 부합하지 않아
굳이 사용할 필요가 없습니다. (물론 해도 되긴 하겠죠)
2)
순전히 성능 때문인데요. new / delete를 한다고 정말 매 번
운영체제에 VirtualAlloc/ VirtualFree를 하는 것은 아니라는 것을
StompAllocator 실습을 통해 확인해봤습니다.
결국 자체적으로 메모리가 어느 정도 관리가 되고 있다는 것인데,
Windows 버전이 올라가면서 메모리 파편화 관련된 문제들이 많이 개선되어
성능적으로 그냥 사용해도 부족함이 없어졌습니다.
콘솔 개발 하는 친구들이랑 이 주제로 얘기를 해보니,
Windows 쪽은 메모리 풀링을 안 해도 괜찮았는데
Linux 쪽은 여전히 느려서 메모리 풀을 사용했다~
는 얘기를 들은 적이 있네요.
감사합니다