코드의 한 이스피들 여기 있습니다.
// scope everything to a function
function main() {
function MyWrapper() {
this.element = null;
}
MyWrapper.prototype.set = function(elem) {
this.element = elem;
}
MyWrapper.prototype.get = function() {
return this.element;
}
var MyView = Backbone.View.extend({
tagName : "div",
id : "view",
events : {
"click #button" : "onButton",
},
initialize : function(options) {
// done for demo purposes only, should be using templates
this.html_text = "<input type='text' id='textbox' /><button id='button'>Remove</button>";
this.listenTo(this,"all",function(){console.log("Event: "+arguments[0]);});
},
render : function() {
this.$el.html(this.html_text);
this.wrapper = new MyWrapper();
this.wrapper.set(this.$("#textbox"));
this.wrapper.get().val("placeholder");
return this;
},
onButton : function() {
// assume this gets .remove() called on subviews (if they existed)
this.trigger("cleanup");
this.remove();
}
});
var view = new MyView();
$("#content").append(view.render().el);
}
main();
하지만 나도 구글 Chrome& # 39 의 프로필러 확인하기 위해 사용하는 방법을 알 수 있다, 사실 이 사건. 한 가지 셨으며 가질리언 볼 수 있는 방법을 모르겠어요, 쉐퍼드도 up on the 힙 프로필러 스냅샷입니다 디코딩합니다 what& # 39 의 优秀 / 좋지 않습니다. 사용 가능한 자습서는 I& # 39, ve seen it 에 대한 스냅샷을 사용하여 profiler" 인컨텍스트 지금까지 그냥 나한테 "; give me a 방법에 대한 매우 상세한 선언 또는 전체 프로필러 작동합니다. 도구를 사용할 수 있는가, 아니면 그냥 프로필러에 꼭 전부 파악할 수 있는 것은?
[Gmail 메모리 누수가 수정] (https://docs.google.com/presentation/d/1wUVmf78gG-ra5aOxvTfYdiLkdGaR9OhXRnOlIcEmu2s/pub? = = = = false& false&, 루프 시작, 델라림스 dl3000 # 슬라이드에서는 id.g14717ff3_0_23)
[Flexlm*용 데브토레스] (http://addyosmani.com/blog/taming-the-unicorn-easing-javascript-memory-profiling-in-devtools/)
일부 뭐로부터요 I& # 39 는 담당자에서 강력해집니다 거기에, 재료, ve seen. 그러나 그들은 내가 찾을 수 있는 기술을 넘어 总监和首席信息官完全了解 도입합니까 3 스냅샷입니다 windows용 거의 제안하십시오 측면에서 실용적인 지식을 (for a beginner like me). # 39, & # 39 를 사용하여 DevTools&. # 39 는 실제 사례를 통해 doesn& 자습서는 때문에, 일반적인 개념 설명, t 작동합니까 막연한 셨으며 aren& # 39, t 큰 도움이 된다. # 39, & # 39 의 Gmail& 있다. 예:
내가 내 자신을 찾을 것이 아니라, 더 후 판독값 너무 적습니다. 그리고 다시 나에게 # 39 의 it& 어떻게 해야 할 것을 말하는 것이 아니라 그냥 저들이요 From my 관점, 거기에 상태는 모든 정보가 너무 쉽게 이해할 수 있다는 막연한 또는 다른 사람에게 이 과정에서 이미 수밖에 없다.
이들 중 일부는 제기돼 보다 구체적인 문제 있는 [@Jonathan Naguin& # 39 의 오토메이티드] (https://stackoverflow.com/a/19726918/20578 참조).
, 는 좋은 워크플로에 기법을 사용하는 메모리 누수 찾기 위해 3 스냅샷입니다 일부 메모리 문제를 해결하기 위해 이 전 대통령과 첫 로리나 Gmail 팀. 이 단계는 일반적으로:
예, 저는 이 코드가 맞는 최적화된 표시하십시오 프로세스 (확인할 수 있습니다 [here] [1]) 의 이벤트 시작 단추를 클릭합니다 보기 만들 때까지 다시 말한다. 현재:
이제 메모리 누수를 찾을 수 있다.!
노드입니다 몇 개의 서로 다른 색상으로 되어 있습니다. 빨강입니다 노드입니다 Javascript 에서 살아 있기 때문에 그들에게 없는 직접판매용 참조입니다 분리되었는지 속해 있지만, DOM 진단트리 트리에서 노드를 Javascript 에서 referenced 있을 수 있다. (아마 비호환성의 폐쇄 또는 variable) 이지만 동시에 기술입니까 인해 전체 DOM 트리입니다 쓰레기요 수집되었습니다.
그러나 가지고 있는 노란색 노드입니다 Javascript 에서 직접 참조. Dom 진단트리는 Javascript 에서 찾을 수 있도록 참조입니다 같은 분리되었는지 노드입니다 노란색이면 찾습니다. Dom element 의 주요 창을 속성를 체인을 있어야 합니다.
Html 요소 적색으로 표시된 Div 에 특정 볼 수 있습니다. 이 경우, 참조하는 " cache" 확장하십시오 요소점 볼 수 있습니다. 함수.
0 달러 에 콘솔입니다 유형: 행을 선택하고, 실제 함수 및 위치를 볼 수 있습니다.
>$0
function cache( key, value ) {
// Use (key + " ") to avoid collision with native prototype properties (see Issue #157)
if ( keys.push( key += " " ) > Expr.cacheLength ) {
// Only keep the most recent entries
delete cache[ keys.shift() ];
}
return (cache[ key ] = value);
} jquery-2.0.2.js:1166
이 요소는 대화상자에서는 진행 중인 참조되었습니다. Jquery 의 내부 메커니즘이 운포르투널리 할 수 있는 것이 없다. 그러나 단지 테스트 기능 및 변경하십시오 검색하기를 목적, 방법:
function cache( key, value ) {
return value;
}
이 과정에서 붉은 노드 경우 지금 볼 수 없을 수도 있습니다:)
문서:
[5]: https://docs.google.com/presentation/d/1wUVmf78gG-ra5aOxvTfYdiLkdGaR9OhXRnOlIcEmu2s/pub start = = = = id.g31ec7af_0_58 dl3000 # 슬라이드에서는 델라림스 false& false&, 루프,?
난 전혀 알아낼 수 있을 때까지 추적할 수 있는 메모리 누수, 사용 방법 및 프로필러 타임라인당 다음 문서를 읽었어요. # 39, & # 39 섹션에 읽은 후, 개체 할당일까요 tracker& # 39, & # 39, 힙 Allocations& 기록하십시오 사용할 수 있는 i was 도구, 그리고 몇 분리되었는지 추적되도록 DOM 노드입니다.
내가 jQuery 사용에 문제가 해결되었습니다 전환을 통해 인터넷데이터센터 (idc) 의 이벤트 바인딩하면, 이벤트 알려졌다. 내 것을 알고 it& # 39 의 새로운 버전의 경우 바인딩 인터넷데이터센터 (idc) 는 자동으로 이벤트 비에w.레모프 전화하시기 ' ()'. 메모리 누수, 이들은 몇 가지 데모 교도관님도요 실행하십시오 설정된 당신꺼에요 식별할 수 있습니다. 안심 질문을 할 경우 여기에 don& 이해했소 공부한 뒤, 여전히 t # 39 이 문서.
https://developers.google.com/chrome-developer-tools/docs/javascript-memory-profiling
나는 두 번째 조언을 해 힙 스냅샷입니다 they& # 39 는 메모리 누수 감지, 구글 크롬, 세밀한 작업을 하고, 훌륭한 스냅샷.
난 내 연구 프로젝트를 생성할 수 있던 건물 내 도 웹 애플리케이션 상호대화식 up in & # 39, 많은 양의 데이터를 구축됨 layers& # 39, & # 39, 이러한 많은 레이어에는 약간만이라도 deleted& # 39. 그러나 몇 가지 이유로 wasn& UI 에 할당 해제된 메모리를 사용하여, t # 39 기술입니까 스냅샷에는 도구에서는 확인할 수 있는 것은 그동안 내가 JQuery 는 객체에 대한 참조가 (소스) 는 when I was trying to 트리거하지 트로이드 () '' 대회를 나가는 불구하고 계속 범위 참조). # 39 의 없기 때문에 이 정보를 처리할 때 매우 유용한 도구 you& it& 챔피언이다 구해줬으니 사업을 하고 있고, 다른 people& # 39 의 라이브러리를 사용하여 # 39 이 호관련 GC 에서 죠브 미련을 참조입니다 중지 할 수 있다.
편집: