사파리 웹 브라우저의 메모리 leak 현상
사파리 웹 브라우저는 safari.exe 뿐만 아니라 별도로 WebKit2WebProcess.exe를 띄워서 렌더링을 분리하는 것 같습니다.
아래의 화면에 보이는 IE, Chrome, Safari 프로세스는 모두 같은 웹 사이트를 방문했을 때의 상황을 보여주고 있습니다.
그런데, 유독 사파리의 WebKit2WebProcess.exe는 점점 더 메모리가 커지더니 급기야 다음과 같이 오류를 내버리고 죽고 맙니다.
WebKit2WebProcess.exe만 문제가 있는 것이 아니고, Safari.exe 자체도 메모리가 다소 증가한 상태이고 더욱 심각한 것은 GDI 리소스가 676에서 7,244개로 어마어마하게 새고 있다는 것입니다.
같은 사이트를 방문 중인 IE와 Chrome의 경우에는 시간은 지났지만 안정적인 리소스 유지를 하고 있는 것을 볼 수 있고.
사파리로 SPA(Single-Page Application)같은 것을 만들 때는 주의를 하셔야겠습니다.
그러게요. ^^ 혹시나 맥용 사파리에서는 홈 그라운드이니만큼 이런 문제가 없을 수도 있겠다 싶어 테스트 해보았는데요. 아래는 역시 같은 응용 프로그램을 방문했을 때의 처음 메모리 사용량입니다.
시간이 지나자 메모리가 2배 이상으로 뛰었습니다.
게다가, CPU 사용량이 심상치 않습니다. 같은 사이트를 방문 중인 Chrome은 17.5%이지만 사파리는 42.9%를 치고 있습니다.
[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]