2011-11-14 3 views
1

I는 버튼 그것에 이미지와 함께 모두 2 장 (2 개 무의미 라디오 버튼) :탐색 할 때 메모리 누수가 있습니까?

<!--ContentPanel - place additional content here--> 
    <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0"> 
     <RadioButton Content="RadioButton" Height="80" Name="radioButton1" VerticalAlignment="Top" Margin="0,0,268,0" /> 
     <RadioButton Content="RadioButton" Height="80" HorizontalAlignment="Left" Margin="231,0,0,0" Name="radioButton2" VerticalAlignment="Top" Width="204" /> 
     <Button Content="Button" Height="97" HorizontalAlignment="Left" Margin="137,510,0,0" Name="button1" VerticalAlignment="Top" Width="331" Click="button1_Click"/> 
     <Image Height="418" HorizontalAlignment="Left" Margin="12,86,0,0" Name="image1" Stretch="Fill" VerticalAlignment="Top" Width="444" Source="http://brucew.files.wordpress.com/2011/10/stones-some-girls.jpg"/> 
    </Grid> 

등을 포함하는 간단한 WP7 어플리케이션을 작성한 I 앞뒤로 메모리 소비 증가를 탐색 할 때 30-35. 항상 뒤로 버튼으로 이동합니다.

이제 이미지 선택기, 빙지도 및 약 10 개의 다른 페이지가 포함 된 더 복잡한 응용 프로그램이 90 메가 배리어에 도달하는 것이 매우 쉽습니다.

내 질문에 내 테스트 응용 프로그램에서 이런 현상이 발생하는 이유는 무엇입니까?

답변

2

두 번째 페이지로 이동할 때마다 새 인스턴스가 만들어집니다. 첫 번째 페이지는 앱 인스턴스 진입 점이므로 하나의 인스턴스 만 갖습니다. 두 번째 페이지에서 다시 탐색하면 인스턴스가 고아가되므로 garbage collection을 사용할 수 있습니다. 인스턴스는 즉시 수집되지 않지만 대신 다음 번 가비지 수집이 실행될 때 해제됩니다 (또는 앱의 메모리 사용량에 따라 후속 실행시 발생할 수 있음).

실제로 사용중인 많은 개체가있을 때까지 메모리 사용량이 증가하지 않는다는 것을 알게 될 것입니다. 여기서 볼 수있는 사용법은 필요한 경우 메모리를 회수 할 수있는 많은 오브젝트로 인해 발생합니다.

관련 문제