arena와 tcache

arena를 쓰면 병목 현상이 발생할 수 있어 이를 방지하기 위해 tcache가 도입됐다는데, arena는 전체 64개밖에 없고, tcache는 각 쓰레드당 64개의 tcache가 있기 때문에 병목현상이 발생하지 않는다는 건가요?? 그리고 각 tcache에 보관할 수 있는 청크의 갯수를 7개로 제한하고 있다면, 전체 보관할 수 있는 tcahce는 64 x 7개가 되는 건가요?

#시스템해킹 #배경지식 #ptmalloc2
작성자 정보
답변 1
avatar
bincat
Closed Beta Tester

답변은 '네 그렇습니다' 입니다! tcache에 대한 보다 자세한 설명은 http://lazenca.net/pages/viewpage.action?pageId=98205748 를 참조해 보시면 도움이 될 것 같습니다.

첨언하자면 '64x7개의 heap chunk'를 보관하게 될 수 있다면 스레드 간의 병목 현상이 줄어드는가? 에 대해서는, 해당 수치가 어느정도 실험을 거쳐서 합리적인 퍼포먼스를 보이는 수치였을 것이라고 짐작할 수 있습니다.
(컴퓨터와 관련하여 어떠한 설계가 왜 그렇게 되었는가? 에 대한 대답은 performance 때문이다! 라고 하면 반은 맞습니다.)

2023.05.23. 01:36
질문에 대한 답을 알고 계신가요?
지식을 나누고 포인트를 획득해보세요.
답변하고 포인트 받기