Google Chrome 의 다중 프로세스와 메모리 사용


사용자 삽입 이미지

최근 Beta Tag를 구글의 크롬 브라우저 다른 브라우저에 비해 장점보다 단점이 더 많겠지만 일단 브라우저가 갖춰야 할 기능에 있어서는 상당히 만족스러운 느낌입니다.

렌더링속도와 브라우징 속도, 어플 수행속도 면에서 매우 안정적으로 변했습니다.
“헉 크롬이 다운되었습니다.” 라는 경고창은 자주 보였던 베타버젼 이후에는 아직까지 본 경우가 없습니다.

베타 첫 출시일에 JavaScript 지원여부와 벤츠마크에 대한 테스트를 해보고 그다지 만족하지 않아 그간 사용하던 FireFox를 사용해 왔었는데 부쩍 느려진 느낌이 들어 웹 서핑때에는 크롬을 사용중인데 그때와 많이 달라져 보이지 않지만 상대성인지 지금은 대단히 만족히 사용하고 있습니다.

크롬의 JavaScript 엔진인 V8 엔진은 이번 릴리즈 노트에서도 평균 1.4배 정도의 향상을 시켰다는 내용이 포함되어 있었고 다양한 부분에 있어서 향상과 안정성을 높인 것 같습니다.

이중 멀티 프로세스 모델과 메모리 사용에 대한 좋은 소개 내용이 있어 간단히 조사해 보았습니다.

크롬은 Firefox와 같은 브라우저에 비해 비교적 많은 메모리를 소모합니다.  바로 멀티 프로세스 아키텍처는  브라우저와 렌더링 엔진을 서로 다른 프로세서에서 동작시키는 원리로 동작하여 더 많은 메모리를 소모하게 됩니다.

크롬의 멀티 프로세스에 대한 설명은 Google Chrome Memory Usage – Good and Bad 이곳을 참고

위의 포스팅에 보면 간단한 메모리 사용에 대한 측정 방법에 대한 방법을 제시하고 있는데 Windows의 Task Manager(작업 관리자)를 통해서 측정한다면 실제 사용하는 메모리에 비해서 30%에서 40%정도 더 많은 사용률을 보일 수 있다고 합니다.  

이것은 멀티 프로세스 아키텍쳐만의 장점으로 크롬이 사용하는 공유 메모리까지 크롬의 메모리 사용률로 측정 될 수 있기 때문입니다.  그렇기 때문에 정확한 사용량을 측정하려면 크롬의 about:memory 를 통해서 확인하시는 것이 가장 정확한 방법입니다.

아래의 모습은 각 브라우저의 초기 페이지를 about:blank로 설정하고 띄운 상태에 메모리 사용률을 체크해 보았습니다. 


사용자 삽입 이미지


크롬이 채택한 이 멀티프로세스 아키텍쳐는 싱글 프로세스 브라우저에 비해 메모리 사용량이 늘어 날 수 밖에 없는 구조입니다.  하지만 반면에 관리에 있어 매우 정확히 동작하기 때문에 더 나은 방법일 수 있다는 생각을 합니다.

만약 메모리 공간을 시스템 프로세스에서 분리하기 위해 보안 취약점이 발생하면 다른 브라우저에까지 영향을 줄 수 있기는 하지만 분리된 렌더링 엔진 프로세스가 종료하면(예를 들자면 같은 도메인에 접속중인 모든 탭을 닫을 경우) 메모리는 운영체제의 수준으로 메모리는 반환되어 메모리 사용량이 증가하기도 쉽지만 사용량을 줄이는 것도 안정적으로 처리 될 수 있게 됩니다.

반면 Single 프로세서의 경우에는 한번 확보한 메모리를 비우거나 사용량을 줄이게 하는 것은 대단한 작업입니다.  FireFox의 경우에는 FreeBSD에서 개발된 jemalloc을 통합하여 사용하며 메모리 조각의 발생을 줄이는 방식으로 활용되고 프로세스 종료 시 메모리를 반환하게 되는 구조입니다.


사용자 삽입 이미지
출처 Stualrt Pavlov씨의 블로그

 구글 크롬의 경우가 메모리 반환의 구조는 더욱 단순해 보입니다.  브라우저는 웹 사이트를 보기 위해서 사용한 만큼 사용자의 메모리 리소스를 사용하고 그 사이트에 대한 정보를 브라우저에서 더 이상 사용하지 않을 때 모든 메모리를 반환한다.  

국내 고급형 PC의 보급률로 볼때면 리소스가 뒷 받침해주니 이런 방식이 더 낫지 않을까?   개인적으로는 단순하면서 더 깔끔하다는 느낌을 받습니다. 

사용자의 브라우징 유형에 따라서 크롬이 더 낫거나 파이어폭스가 더 나을 수도 있다는 느낌도 듭니다.


Chromium Developer DocumentationMulti-process Architecture
신고
Posted by Rhio.kim
Chrome

  브라우저의 상태를 직접 볼 수 있도록 다양한 기능을 숨겨두었네요.
  about:crash or about:% 의 경우에는 "헉!" 함께 경고창이 뜨는데 왜 이런 기능을 만들었을까? 
  궁금해 지네요.
 
 1. about:stats
 2. about:dns
 3. about:memory
 4. about:version
 5. about:histograms
 6. about:network
 7. about:plugins
 8. about:cache
 9. about:crash (%)
사용자 삽입 이미지

10. about:internets



FireFox 3

  파이어 폭스는 몇개 없어서 직접 실행 봤습니다. 재미있네요.
  내용들을 보니 모질라 재단의 사상을 넣어 둔것이 아닐까? 생각이 듭니다.

1. about:robots ->  
사용자 삽입 이미지

2. about:mozilla
  맘몬이 잠든 때에 짐승이 다시 태어나 온 지구를 뒤덮고 군대를 이루리라. 이들이 시대를 휘어잡고 교활한 여우와 같이 소출을 불태워 없애 버리는 도다. 이제 곧 신성한 언약에 말씀 대로 그의 형상에 따라 신천지를 만들리니 짐승과 그 자식이 말씀에 따르니라. 보라 맘몬이 깨어났으나 따르는 자가 없도다

모질라서 11장 9절 (10판)

3. about kitchensink (콜론이 없는 상태로 입력하시면 됩니다.)
사용자 삽입 이미지


출 처 : Host Intruder blog
신고
Posted by Rhio.kim
사용자 삽입 이미지

구글 브라우저의 이름 크롬(Chrome)


국내 시간으로 오늘(9월 3일) 발표된 크롬은 기대치 이상이 아닐까?

구글답게 오픈 소스 기반으로 모든 개발자들이 브라우저 개발에 참여할 수 있도록 하고 있다.
파이어 폭스의 Addon 기능도 좋은 기능에 일환이지만 브라우저의 핵심 코드까지는 공개하지 않는다.

만약 브라우저의 핵심 코드가 모두 공개되면 어떤 일이 벌어질까?
수많은 생각들이 머리를 스쳐 지나가지만 국내에서는 걱정이 앞선다. 
(Ad Chrome 으로 탄생할지 모르기 때문이다.)

사용자의 브라우징을 위한 기본적인 기능과 개발자를 위한 기본적인 기능에 매우 충실함이 느껴집니다.

사용자 삽입 이미지

새로운 기능중의 하나인 '새 시크릿 창' 사용자에게 괜찮은 기능이 될것 같습니다.
저처럼 므흣한 사진을 즐기는 저에게는 매우 필요했던 기능이죠. (자세히 보니 남을건 다 남는군요.)
사용자 삽입 이미지

콘솔 창
사용자 삽입 이미지


크       롬 : www.google.com/chrome
관련 기사 : http://www.hankyung.com/news/app/newsview.php?aid=2008090225761&sid=01040104&nid=000&ltype=1
Ajaxian    : http://ajaxian.com/archives/google-chrome-chromium-and-v8
Easter Eggs : http://hostintruder.wordpress.com/2008/09/03/google-chrome-superpower-browser/
신고
Posted by Rhio.kim