7P by kunggom 2020-06-19 | favorite | 댓글 1개

구글 크롬이나 MS 엣지 신버전 등 크로미엄 계열 웹 브라우저의 공통적인 단점 중 하나로는 메모리 사용량이 상당히 많다는 점이 있습니다. MS 엣지 또한 이제 크로미엄 계열 웹 브라우저가 되면서 이러한 단점에서 자유롭지 못하게 되었지요.

응용프로그램이 운영체제에 신청하여 동적으로 할당받는 메모리 공간을 ‘힙’(heap)이라고 합니다. 지금까지 윈도우 운영체제에서 이러한 메모리 할당을 관리해온 시스템은 NT heap이라고 불리는데, 윈도우 10에서는 Segment heap이라는 새로운 메모리 할당 관리 시스템이 내장되었습니다. 다만 지금까지 이 시스템은 일부 시스템 프로세스, 구 MS 엣지의 일부분, UWP 앱 등에만 제한적으로 적용되어 있었습니다. 그 외의 모든 프로그램은 기존의 NT heap을 그대로 사용하고 있었죠.

최근에 풀린 윈도우 10 2020년 5월 업데이트(버전 2004, 빌드 19041)부터 이 새로운 메모리 관리 시스템을 일반 Win32 응용프로그램에서도 사용할 수 있게 되었습니다. 그리고 그에 맞춰 MS 엣지와 구글 크롬 등 크로미엄 계열 웹 브라우저에서도 Segment heap을 지원하는 시스템에서는 이를 사용하도록 업데이트를 한다고 합니다. MS 엣지 개발팀에 따르면 내부 테스트에서 메모리 사용량이 최대 27% 감소하였다고 하니, 적어도 최신 윈도우 10에서는 크로미엄 계열 웹 브라우저의 메모리 사용량 감소 효과가 상당할 것으로 기대됩니다.

Chromium 프로젝트의 Segment heap 적용 관련 버그 트래커 상황:
https://chromium-review.googlesource.com/c/chromium/src/+/2163163

Segment heap의 내부 구조(영어 슬라이드):
https://blackhat.com/docs/us-16/…

기존 NT heap의 내부 구조(영어 슬라이드):
https://slideshare.net/AngelBoy1/…

메모리 뿐만 아니라, 전체적으로 거대한 느낌을 지울수가 없는데.. 최적화가 계속 이루어졌으면 좋겠네요.