여기 dev에 (공식 125213 빌드) 내가 구글 크롬 19.0.1061.1에서 실행되는 일부 코드를입니다 "Private Memory"가 무한정 자라고 있습니다 (8GB RAM 구성). 내가 위에서처럼 뭔가에 코드 샘플을 변경하는 경우 :메모리 누수 및 setInterval을
<html>
<title>Memory Leak</title>
<script type="text/javascript">
(function(){
var xhr = new XMLHttpRequest();
var timeout = this.window.setInterval(function() {
xhr.open('GET', '', false);
xhr.send();
}, 50);
}).call(this);
</script>
</html>
지금은 괜찮습니다.
나는 그것을 얻지 않는다. 왜이 setInterval 함수에 대한 참조를 유지하는 것이 도움이되고 이 단지 xhr을 정의하는 데 도움이되는 이유는 이전에 선언이 닫혀 있었기 때문에 도움이 되었습니까? 그것은 v8에만 관련이 있습니까?
감사의 말에 감사드립니다.
시간 제한에 대한 참조를 유지하면 누출을 정리하는 데 도움이되지 않습니다. XHR 개체를 다시 사용하여 누출을 방지합니다. 참고 : 서버에서 응답을 읽으려고하면 50ms 후에 덮어 쓰기 때문에 중단됩니다. –
- 범위 기능에서 호출을 사용하는 이유는 무엇입니까? (function (context) {console.log (context)/* window * /}) (this); (function (context) {console.log (context)/* window * /}) (window); (function() {console.log (this)/* window * /})(); – elmuchacho