메모리 크기가 큰 경우 풀 안하는 이유?
안녕하세요
메모리 풀 관련된 질문이 2개가 있습니다
질문 1)
25:40쯤에 메모리 사이즈가 큰 경우에는 메모리 풀을 사용하지 않는다고 하셨는데요
큰것도 할당 해제가 빈번할경우가 있을텐데
이런 경우에도 메모리 풀을 사용하지 않는다는 말씀이신건가요?
질문 2)
요즘에는 메모리 풀을 사용안한다고 하셨는데요
그 말인즉 객체를 new delete를 해서 바로바로 사용해도 된다는 말씀이신건가요??
특별한 이유가 있을까요?
답변 1
3
1)
메모리 풀을 사용하는 가장 큰 이유가 메모리 파편화 때문이고
또 비슷한 크기의 메모리를 재사용하고자 하는 목적인데
메모리 크기가 너무 큰 애들은 위 목적에 부합하지 않아
굳이 사용할 필요가 없습니다. (물론 해도 되긴 하겠죠)
2)
순전히 성능 때문인데요. new / delete를 한다고 정말 매 번
운영체제에 VirtualAlloc/ VirtualFree를 하는 것은 아니라는 것을
StompAllocator 실습을 통해 확인해봤습니다.
결국 자체적으로 메모리가 어느 정도 관리가 되고 있다는 것인데,
Windows 버전이 올라가면서 메모리 파편화 관련된 문제들이 많이 개선되어
성능적으로 그냥 사용해도 부족함이 없어졌습니다.
콘솔 개발 하는 친구들이랑 이 주제로 얘기를 해보니,
Windows 쪽은 메모리 풀링을 안 해도 괜찮았는데
Linux 쪽은 여전히 느려서 메모리 풀을 사용했다~
는 얘기를 들은 적이 있네요.
Memory Pool에서 오버플로우 질문입니다.
0
63
2
포토폴리오 및 진로 관련하여 고민입니다.
0
112
1
포토폴리오 관련 고민입니다.
0
62
1
실무에서도 alloc, 스마트포인터 등을 구현해서 쓰는지 궁금합니다.
0
82
2
성능 테스트 결과
0
103
2
게임 서버 Stateful, Stateless 진로 고민
0
121
1
WaitOnAddress와 Sleep의 차이 질문
0
83
1
궁금한거 있습니다.
0
82
2
JobTimer 구동 스레드
0
107
2
TryPop() 동작 관련 질문
0
81
1
로드맵 C#서버 C++서버 방향성 질문
0
148
2
스레드 id를 출력할떄 메인스레드 id도 출력되나요?
0
73
1
생명주기를 위한 의도적 복사
0
86
2
락프리의 실무에서 사용 질문
0
139
2
32bit threadID와 16비트 상위 WriteFlag에 대해
0
101
2
mutex와 sleep 차이점
0
117
1
실무에서는 어떠한 코드 스타일을 사용하는지 궁금합니다
0
152
2
Stomp Allocator의 Release함수에 대한 질문입니다.
0
96
1
공부법 관련해서
0
183
2
MakeShared 함수 관련
0
114
1
지금까지 서버코어에서 만든 내용에 대해 궁금한 점이 있어서 질문 드립니다.
0
144
2
운영체제관련 질문입니다
0
131
1
send하려는 데이터 크기가 크면 memcpy에서 문제가 발생할 것 같습니다.
0
117
2
메모리 풀 질문있습니다.
0
124
1





