2013-01-22 3 views
3

매 5 초마다 Javascript를 실행하고 작업 관리자가 메모리 사용량을 지속적으로 늘립니다. 그러나 힙 스냅 샷은 그렇지 않습니다. 스크립트를 중지하면 약 반분 후에 메모리가 지워집니다. 2 분.작업 관리자가 메모리 누수를 표시하지만 힙 스냅 샷이 표시되지 않음

UPDATE : 나는 오랜 시간 동안 스크립트를두면

는 메모리 증가 브라우저가 충돌 할 때까지. 크롬 개발 도구의 타임 라인 테스트를 실행하려고 시도했지만 힙 스냅 샷과 마찬가지로 메모리 사용량이 증가하지 않았습니다. 그래서 나는 그것이 일종의 누설이라고 생각하지만, 누출되는 것을 이해할 수는 없습니다.

이전 Chrome 버전을 설치할 수 없기 때문에 확인할 수없는 또 다른 점은 이전 Chrome 버전 (< 크롬 버전)에서이 문제가 발생하지 않는다는 것입니다. IE10에서는 메모리를 늘리지 않고이 테스트를 실행합니다. 이 문제가 새로운 Chrome이 될 수 있습니까?

+1

오랫동안 방치하면 톱니 모양이 보입니까? 그렇다면 GC가 제대로 작동 할 때까지 기다려야합니다. – bfavaretto

+0

결코 되돌아 가지 않으면 "메모리 누출"입니다. x –

+1

동일한 문제가 있습니다. Chrome 작업 관리자에서 내 페이지의 메모리가 100MB에서 1,200MB 이상으로 몇 분 동안 지나간다는 것을 알 수 있습니다. 그 사이에 자바 스크립트 메모리는 약 13MB와 거의 동일합니다. 타임 라인은 JS 힙을위한 멋진 톱니 모양을 보여 주며 왜 메모리가 계속 자랄지 확신하지 못합니다. – Luke

답변

3

힙 스냅 샷 프로 파일러가 스냅 샷 이전에 가비지 수집기를 실행하기 때문에 Chrome 개발자 도구를 참조한다고 가정하면 힙 스냅 샷에서 메모리가 증가하지 않을 수 있습니다.

특히 활성 처리 중에 증가 된 메모리 사용량을 보는 것은 꽤 정상입니다. 가비지 수집기가 불필요하게 실행되지 않습니다. 컴퓨터에 여분의 메모리가 있으면 예약 된 메모리를 늘릴 수 있습니다. 사용 가능한 메모리의 한계를 밀기 시작하면 수집기가 실행되어야합니다. 당신은 이것이 일어나는 것을보기 위해 일어나는 것을 허용해야합니다.

유휴 기간이 지나면 메모리가 원래 수준으로 떨어진다는보고 이후 메모리 누수가없고 가비지 수집기가 할당 된 모든 힙 개체를 올바르게 수집 할 수 있음을 나타냅니다.

그러나 IANAGE (저는 Google 엔지니어가 아닙니다). 나는 배경으로 Heap Profiler documentation과 관련된 Memory 101 page을 읽을 것을 권합니다.

+0

더 많은 테스트를 수행하고 질문을 업데이트했습니다. 여전히 누수라고 생각합니다. – zeroin

관련 문제