2008년 9월 6일 토요일

구글 크롬 CPU 점유율

구글 크롬과 IE. 요 며칠 이 두 가지를 나만의 잣대로 비교해 보는 습관이 생겼다. 아무래도 나의 웹 서핑 스타일이 네이버(http://www.naver.com) 메인 페이지를 접속 해 보고 있는 페이지는 변경하지 않으면서, 요약 된 기사 제목들을 새 탭에서 링크 열기 방식으로 다른 탭으로 띄우기를 반복하여, 구미가 당기거나 호기심이 이는 기사의 제목 문구가 없어질 때 까지 이를 반복해 탭을 모아 놓고 차분히 하나씩 읽어나가면서 탭을 제거하는 식이다보니, 탭 단위로 프로세스를 생성 관리하는 크롬과 한 개의 프로세스에서 일괄적으로 관리하는 IE를 당연히 비교하지 않을 수 없다.

그리고 해당 기사나 관련 포스트, 글들을 읽다가 또 다른 관심거리가 생기면 새 탭으로 띄워서 뒤로 미뤄놓고 나중에 읽는 방법을 사용하다보니 보통 나의 웹 브라우저에는 탭이 적게는 5~8개 정도에서 많게는 20~30개 이상 띄우는 경우가 다반사이다. 그리고 특히 관심이 가는 탭은 따로 새 창으로 띄워나가면서 글을 읽기 때문에 나의 바탕화면은 웹 서핑 중에 상당히 복잡하면서도 지저분한 상태라 할 수 있다.

여러 개의 창이나 탭이 복잡다단하고 무질서하게 널려 있는 상황이다보니 아무래도 효율적인 리소스 관리를 중요하게 생각해야 하고, 크롬과 IE를 사용해서 실시간으로 프로세스당 CPU나 메모리 점유율 체크를 하면서 어떤 것이 더 내게 적합한 웹 브라우저인가 하는 저울질을 하게 된다.

우선 테스트 해 본 것은 내가 주로 활용하는 방식인 동시에 다중의 탭을 실행해서 여러 가지 관련 뉴스들을 살펴보는 식의 웹 서핑 시에 CPU의 점유율 등을 체크 하는 것이다.

웹 상에서 현재 크롬의 장점이자 단점으로 많이 언급 되는 것이, IE에서는 하나의 창에 프로세스 하나가 생성 되서 일괄적으로 관리하기 때문에 탭 하나에서 에러가 나면 프로세스가 죽어버려 전체 창이 다 사라져버리는 것과는 달리, 크롬에서는 하나의 탭마다 프로세스가 생성 되기 때문에 하나의 탭에서의 문제가 창 전체와 별개로 처리가 된다는 점이 장점으로, 하지만 그렇기 때문에 동시에 다중의 탭을 띄울 경우 프로세스가 너무 많이 불어나버려 CPU 자원을 많이 소모한다는 것이 단점으로 이야기 되고 있다.

이러한 글들을 토대로 나도 나만의 방식으로 한 번 테스트를 해 보았다.



이것은 구글 크롬에서 16개의 탭을 띄워 여러 페이지를 불러놓고 CPU의 점유율과 프로세스의 모니터링을 체크 해 본 것이다. 처음 탭 하나를 띄웠을 때는 CPU 기본 점유율이 매우 낮아서 두 개의 코어에서 모두 한 자리 수(0~5%) 정도 밖에 차지하지 않던 크롬이었건만, 탭 수가 많아지니 CPU가 비명을 질러대는 것이 보인다. 코어 하나가 풀로드 된 상태가 되었던 것이다.



이것은 IE에서 같은 수 만큼 탭을 띄웠을 경우이다. 단일 창을 띄웠을 경우엔 크롬보다 CPU 리소스를 조금 더 먹고(1~3% 정도 차이) 그 정도 또한 매우 불규칙하게 움직이는 것을 확인 할 수 있었는데 탭 수가 많아지니 IE 역시 CPU 점유가 많아지긴 했지만 프로세스가 엄청나게 늘어나버린 크롬보다 정도가 덜하긴 했다.

작동 속도가 빠르고 깔끔하게 구동되는 크롬의 모습에 매력을 느끼며 크롬을 주 웹 브라우저로 설정해서 사용하긴 하지만, 아직 ActiveX의 의존도가 너무 높은 국내 웹의 현실 때문에 IE를 수시로 사용하면서 계속 비교를 하게 되는 나의 모습을 발견한다.

어제만 하더라도 서울 시내 교통 안내 페이지(http://bus.seoul.go.kr)에서 교통편을 체크하는 데 구글 크롬으로 접속하니 지도가 뜨질 않는다. 정부 홈페이지가 왜 이모양이냐.

구글 맵 등을 통해서 지도를 확인 할 경우(http://map.yahoo.co.kr) IE에선 로딩 상태가 조금 오래 되면 위치 이동시 재로딩 상태에서 버벅거림이 생기고, 심한 경우 그냥 에러 표시를 내면서 IE가 재가동 되는 모습을 확인 할 수 있었는데, 크롬에서는 IE에 비해서 가벼운 느낌을 많이 받을 수 있었다.

하지만 나의 주 웹 서핑 습관과 관련지어 생각해보면, 구글 크롬의 프로세스 관리는 정말 치명적이라고 할 수 있으니, 이것에 대해서는 나의 웹 서핑 습관을 고쳐야 하는 것인가? (-_-;;)

그리고 여담으로 이야기 하자면, 프로세스가 따로 관리 되기 때문에 에러가 나면 해당 탭만 사라질 뿐 다른 탭에는 영향을 미치지 않는다고 하길래 그것이 어떤 모습으로 구현 되는가 너무도 궁금한 나머지 작업 관리자에서 Google.exe 프로세스를 직접 kill 해 보았는데, 떠 있던 모든 구글 탭+창이 동시에 사라지더라.(-_-;;;)

댓글 2개:

그리움 :

http://dev.chromium.org/developers/design-documents/multi-process-architecture

메인프로세스에서 다른 프로세스(창 하나당 하나씩) 열고 파이프로 통신하는 방식.

메인 프로세스를 죽이면 전부 꽥!

Akasha :

위의 그륨형 덧글을 참고하여 원문을 읽어보니, 어쩔 땐 프로세스를 죽이면, "이 창을 표시할 수 없습니다." 라고 나오던 것이 IPC로 통신 되고 있던 창의 프로세스가 죽어버려서, 표시를 못 했던 것이었고, 크롬 자체가 죽어버린 것은 메인 프로세스를 죽여서 그랬던 것이었스므... -ㅅ-