2009-04-29 7 views
4

누출은 아주 쉽게 생성 할 수 있습니다. "TestImage0.jpg", "TestImage1.jpg", ... "TestImage9.jpg"라는 큰 이미지 목록 옆에 HTML을 놓습니다. 페이지를 클릭 할 때마다 메모리가 누출됩니다 (테스트를 위해 sIEve를 사용했습니다). 크기 조정 CSS가 제거되면 페이지가 누출되지 않습니다. 누구나 이것이 IE8 문제인지 또는 내 실험에 결함이 있는지 확인할 수 있습니까?누군가 IE8 메모리 누수인지 확인할 수 있습니까?

테스트 코드

<html> 
<head> 
    <title>Memory Leak Testing</title> 

    <script type="text/javascript"> 

    var count = 0; 

    window.onload = 
     function() { 
      AppendImage(); 
      window.document.body.onclick = ReplaceImage; 
     } 

    var ReplaceImage = function() { 
     window.document.body.removeChild(document.getElementById('MemTestObject' + count)); 
     count++; 
     if (count > 9) { 
     alert('No more images to load.'); 
     } else {  
     AppendImage(); 
     } 
    } 

    var AppendImage = function() { 
     var imageObject = document.createElement('img'); 
     imageObject.id = 'MemTestObject' + count; 
     imageObject.className = 'MemTestObject'; 
     imageObject.src = 'TestImage' + count + '.jpg'; 
     window.document.body.appendChild(imageObject); 
    } 

    </script> 

    <style type="text/css"> 
    .MemTestObject { 
     width: 140px; 
     height: 178px; 
    } 
    </style> 
</head> 
<body> 
    <h1>Memory Leak Testing</h1> 
</body> 
</html> 
+0

다른 브라우저를 테스트 해 보셨습니까? –

+0

FF3의 메모리 사용량은 IE8과 거의 같은 속도로 증가합니다. 그러나 FF3은 가비지 수집 라운드를 몇 번 기다린 후에 메모리를 해제합니다. 페이지가 언로드 될 때 IE8은 메모리를 해제하지 않습니다. – JoshNaro

+0

일단 페이지를 닫은 다음 다시 열면 더 많은 메모리가 누출됩니까? – Daemin

답변

0

질문은 "사람이가 IE8의 메모리 누수가 있는지 확인 할 수 있나요?"입니다 대답은 오직 예일 수 있습니다. 그렇습니다.

IE에서 유효한 메모리 누수라고 생각한다면 먼저 IE인지 확인하십시오. 그런 다음 구체적인 작업을 계속하십시오. 이 누출을 재현하는 방법을 정확하게 설명 할 수 있다면 MS에보고하는 것을 고려해 볼 수는 있지만 곧 해결할 것입니다. 그러나 다른 사람들이 함정을 피할 수 있도록 모든 뉴스를 전파하십시오.