Firefox에서 몇 초마다 높은 CPU 사용량의 "스파이크"가 발생하는 이유는 무엇입니까?


9

Firefox를 시작하면 잠시 문제가 없지만 며칠 후에 CPU 스파이크가 발생하기 시작합니다. 스파이크 중에 Firefox가 멈춘 다음 중지합니다. 스파이크는 7-10 초마다 발생하며 각 스파이크는 2-3 초 동안 지속됩니다 . 스파이크가 발생할 때 입력하는 경우 스파이크 후에 만 ​​문자가 출력됩니다. 처음에는이 문제가 Flash 때문이라고 생각했기 때문에 사용 중지했지만 문제가 계속 발생합니다.

또한 Firefox의 메모리 사용량은 며칠 후에 600MB 이상으로 증가합니다.

내가 사용하는 Firefox 플러그인 및 확장 프로그램 목록은 여기에서 볼 수 있습니다 .


6
Firefox는 항상 메모리 누수를 경험했습니다. 그 부분은 정상입니다.
John T

버그 490122 에서 증상이 추적됩니다 . 고맙게도 Firefox 4 이상에서는 더 이상 경험하지 않는 것 같습니다.
RomanSt

1
그리고 모든 새로운 버전은 그들이 그것을 고쳤다 고 약속합니다! google.com.au/…
Matthew Lock

1
@MatthewLock 이것대해 ? Reddit 사용자 만 모든 버전을 다룰 수있을 것 같습니다.
Daniel Beck

답변:


8

가비지 콜렉터 또는 사이클 콜렉터 인 것 같습니다.

about:config변경 javascript.options.mem.log되었습니다 true. 이제 GC 및 CC에 대한 알림을 오류 콘솔 ( Crtl+ Shift+ J) 에서 사용할 수 있어야합니다. 타이밍 및 지속 시간이 일치하면 이것이 문제입니다.

이 문제가 발생했을 때 Firefox 프로파일을 날려 버리고 처음부터 새로 작성하여 문제를 해결했습니다. Firefox 프로필은 시간이 지남에 따라 많은 크루를 수집하는 경향이 있습니다.

이 솔루션도 완벽한 솔루션이 아닙니다. Firefox (100+) 또는 많은 확장 프로그램에서 많은 탭을 열고 Firefox를 며칠 동안 실행 상태로두면 필연적으로 속도가 느려집니다. 가끔씩 Firefox를 다시 시작해야합니다.

당신이 나와 같은 경향이 있고 당신이 사용하는 또 다른 트릭은 browser.sessionstore.max_concurrent_tabs0 으로 설정 하는 것입니다. 대신 전환 할 때로드됩니다. 필자는 때때로 파이어 폭스를 재시동하여 많은 탭을 갖는 부하를 크게 줄입니다.


2
BarTab이라는 Firefox 플러그인이 있습니다. browser.sessionstore.max_concurrent_tabs
Boris_yo

1
네, Firefox 4 용으로 업데이트되지 않았다고 생각합니다.
Mr Alpha


1
"max_concurrent_tabs"는 Firefox 40 (2015-08)에없는 것 같습니다.
Peter Mortensen

max_concurrent_tabs의 현재 항목은 "선택할 때까지 탭을로드하지 않음"이라는 "일반"의 환경 설정에있는 설정이라고 생각합니다.
miyalys

9

에서는 about:config설정, browser.sessionstore.interval많은 수 (그것은 있어야 10,000또는 15,000약으로 설정 600,000).

기본적으로 Firefox가 "저장된 세션"을 업데이트하는 시간 사이의 시간 (밀리 초)입니다. 많은 탭을 열거 나 인터넷 사용 기록이 길거나 (또는 ​​두 경우 모두와 마찬가지로) sessionstore.js10 ~ 15 초마다 파일에 우스운 양의 데이터가 기록 될 수 있으며 이로 인해 Flash 비디오가 작동하지 않을 수 있습니다. 잠깐 동안 멈추거나 몇 분마다 전체 컴퓨터를 정지시킵니다.

이 값을 크게 설정하면 Firefox가 충돌하면 복원하려고 할 때 마지막 몇 분 동안 인터넷 사용 기록이 손실된다는 단점이 있습니다. 그것은 내 의견으로는 지불해야 할 작은 가격입니다.

CPU 스파이크가 훨씬 줄어 듭니다.


2
세션 관리자 플러그인이 설치되어 있습니다. 또한 세션을 저장하여 더 나은 관리 및 사용자 정의가 가능합니다. Firefox와이 플러그인이 모두 세션을 업데이트하여 CPU 사용률을 높이고 충돌하면 어떻게됩니까? Firefox의 세션 업데이트 기능을 비활성화하고 세션 관리자를 유지하는 방법이 있습니까?
Boris_yo

1
Firefox 40에서는 "sessionstore.js"(및 이전 버전의 "\ sessionstore- backups \ recovery.js ").
Peter Mortensen

1
좋아, 이것은 Firefox 40이 아닌 Firefox 33 (2014-06)으로 변경된 것 같습니다 .
Peter Mortensen

4

메모리 누수 자체를 수정하지는 않습니다. 그러나 "선택할 때까지 탭을로드하지 마십시오"를 활성화하면 재시작 후에 탭을 클릭 할 때까지 탭이로드되지 않아 메모리가 줄어 듭니다.

또한 CCleaner 를 사용 하여 Firefox를 청소하는 것을 발견했습니다. "세션"이 약간 도움이되었습니다. 세션 복구 정보가 제거되면 열려있는 모든 탭을 먼저 백업하십시오. CCleaner를 실행하기 전에 내 sessionstore.js 파일은 약 800KB 였지만 그 후에는 약 6KB로 줄었습니다.

sessionstore에 대한 자세한 내용은 Solved : Firefox Freezes 10 초마다, Scrolling is Jumpy에서 확인할 수 있습니다.

Flashblock을 제거하면 Firefox의 높은 CPU 문제가 해결되었습니다. 아마도 Flashblock과 Adblock Plus 또는 다른 확장 기능이 작동하지 않습니까?

Firefox로 엉망이 되기에는 인생이 너무 짧습니다. 방금 북마크를 내보내고 Firefox를 제거한 다음 컴퓨터의 모든 Firefox 폴더를 삭제 한 다음 Firefox를 처음부터 다시 설치하고 북마크를 복원했습니다. 이제 완전히 새로 설치하여 Chrome보다 빠르게 실행됩니다.


2

말하기가 매우 어렵습니다. 일반적인 사용입니까, 아니면 특정 사이트에 액세스하고 있습니까? (우리는 jQuery 의 메모리 누수로 인해 브라우저가 시간이 지남에 따라 메모리를 확보하는 문제가있었습니다 .)

Microsoft OS를 사용한다고 가정하면 Microsoft의 Process Monitor 도구를 사용해 볼 수 있습니다. 그것은 많은 메시지를 흘리지 만 '동결'이 발생한 간격으로 메시지를 좁힐 수 있어야하며 차단을 수행하는 프로세스를 볼 수 있습니다.


jQuery에 메모리 누수가 있습니까? Hrmmmmm
Jeff F.

1
일어날 수 있습니다. : jQuery를 버그 티켓이 목록을 참조하십시오 bugs.jquery.com/search?q=leak&go=&ticket=on을 . 상당히 큰 누수가 발생한 단일 페이지 (간격으로 트리거 된 AJAX 요청을 통해)에 지속적으로 충돌했기 때문에 문제가 발생했습니다.
James Wiseman 13:27에

1
브라우저 문제와 비슷하고 jQuary 문제가 적은 것은 브라우저에서 실행할 수 없기 때문에 말하는 것입니다 (대부분의 경우) :) (while (1 == 1) {} 충돌하는 경우 브라우저 나는 브라우저를 탓한다 : P)
Jeff F.

1
브라우저에 결함이 있다고 주장하는 것은 정확하지만 (위 링크의 일부 버그는 IE가 순환 참조를 올바르게 처리하지 못한 것과 관련이 있음) 개발자가 JS 코드를 사용하여 이러한 문제를 해결할 수있는 단계가 있습니다. C / C ++에서는 GC가 없으므로 수동으로 할당 한 메모리를 정리해야합니다. 이것이 코드 또는 런타임의 결함이 아닌가? 환경의 한계를 설명하지 않으면 대신 버그로 간주 될 수 있으며 jQuery 팀이 그것을 보는 방식과 똑같습니다.
제임스 Wiseman

1
글쎄, 이것은 어리석은 논쟁으로 끝났다 : P. JavaScript는 코드가 아니라 스크립트입니다. 스크립트는 다른 프로그램 내에서 실행됩니다. 잘못 작성된 프로그램은 자체적으로 실행되므로 이로 인해 적절한 쓰기가 필요합니다. 스크립트를 받아들이는 좋은 프로그램은 스크립트가 깨지는 것을 방지합니다. 따라서 bugzilla를 확인하면 JavaScript가 잘못 작성되어 Firefox가 충돌하는 버그로 간주되는 이유가 무엇인지 알 수 있습니다. 이 주제는 꽤 의견이 많으므로 그 내용을 그대로 두겠습니다! (브라우저가 jQuery가 아닌 누수 이후 첫 번째 의견은 농담이었다)
Jeff F.

0

아직 그렇게하지 않았다면 최신 Firefox로 업그레이드 해보십시오. 그들은 메모리 누수를 줄이기 위해 열심히 노력했습니다.


나는 항상 업그레이드하고 문제가 유지되었습니다. 나는 파이어 폭스 3.6.17과 함께 사는 것을 선호
Boris_yo
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.