2014-06-11 8 views
4

Windows Phone 8 응용 프로그램에서 작업하고 있습니다. 내가 커버 플로우 기능을하고 있어요이미지를로드하는 동안 WP8 메모리 부족 오류가 발생했습니다.

, 난 600 개 항목을로드하려고하지만 항상 보여줍니다 Out of Memory Error

코드 : 때마다이로드 때문에

<DataTemplate x:Key="DataTemplate1"> 
      <Grid VerticalAlignment="Center" HorizontalAlignment="Center"> 
       <Grid.RowDefinitions> 
        <RowDefinition/> 
       </Grid.RowDefinitions> 
       <Border Grid.Row="0" Height="400" Width="400" CornerRadius="30,30,30,30"> 
        <Border.Background> 
         <ImageBrush ImageSource="Images/sample.png" /> 
        </Border.Background> 
       </Border> 
       <Grid Grid.Row="0" HorizontalAlignment="Center" VerticalAlignment="Top"> 
        <TextBlock HorizontalAlignment="Center" 
           VerticalAlignment="Center" 
           Margin="5,20,5,5" 
           Foreground="#000000" 
           Text="{Binding Title}"/> 
       </Grid> 
       <Grid Grid.Row="0" HorizontalAlignment="Center" VerticalAlignment="Bottom"> 
       <TextBlock HorizontalAlignment="Center" 
           VerticalAlignment="Center" 
           Margin="5,5,5,20" 
           Foreground="#000000" 
           Text="{Binding SubTitle}"/> 
       </Grid> 
      </Grid> 
     </DataTemplate> 

나는, 그것 때문에 일어나는 이유를 확인 시도 아래의 코드

<Border Grid.Row="0" Height="400" Width="400" CornerRadius="30,30,30,30"> 
         <Border.Background> 
          <ImageBrush ImageSource="Images/sample.png" /> 
         </Border.Background> 
        </Border> 

와 이미지 나는 WidthHeight 제거 시도하고 있지만 작동 나는 더 큰 이미지를 원한다.

어떻게 해결할 수 있습니까?

+0

은 왜을 downvoted? 뭐가 잘못 된거야 – Goofy

+1

왜 wpf 태그가 있습니까? 당신은 Windows phone 8에 300MB 제한이 있습니다. 만약 당신이 수학을한다면이 크기의 600 장의 사진에 충분하지 않다는 것을 알게 될 것입니다. – thumbmunkeys

+0

WPF가 600 개 항목 모두에 대해 동일한 이미지 인스턴스를 사용하는지는 모르겠습니다. 'ImageBrush'를 리소스에 넣고'StaticResource'를 사용하여 참조하려고 했습니까? – Dirk

답변

1

여기서 자세히 설명했습니다. 당신이해야 할 일은 메모리 프로파일 링 (Memory Profiling)을 사용하고 주기적으로 메모리 힙 (heap)을 점검하여 할당되지 않아야 할 때 할당 된 것을 확인하는 것입니다.

How to debug running out of memory on Windows Phone