Grid et StackPanel, qui ont les meilleures performances?
Lisons ces codes, j'ai défini deux semblables UserControls dans un Windows Phone 8 projet et je tiens vraiment à ce qui est le meilleur. J'ai vérifier le profilage, il semble qu'ils sont presque les mêmes.
UserControl 1, à l'aide de la grille de la propriété pour la conception de ma mise en page.
<Grid x:Name="LayoutRoot" Background="{StaticResource PhoneChromeBrush}" Height="108">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="Auto"></RowDefinition>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"></ColumnDefinition>
<ColumnDefinition Width="*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Rectangle Grid.RowSpan="2" Grid.Row="0" Height="108" Width="54" Fill="Blue"></Rectangle>
<TextBlock Grid.Row="0" Grid.Column="1" Text="Caption" Style="{StaticResource PhoneTextExtraLargeStyle}"></TextBlock>
<TextBlock Grid.Row="1" Grid.Column="1" Text="URLURLURLURLURLURL" Style="{StaticResource PhoneTextSmallStyle}"></TextBlock>
</Grid>
UserControl 2, à l'aide de StackPanel pour la conception de ma mise en page.
<Grid x:Name="LayoutRoot" Background="{StaticResource PhoneChromeBrush}" Height="108">
<StackPanel Orientation="Horizontal">
<Rectangle Height="108" Width="54" Fill="Red"></Rectangle>
<StackPanel Orientation="Vertical">
<TextBlock Text="Caption" Style="{StaticResource PhoneTextExtraLargeStyle}"></TextBlock>
<TextBlock Text="URLURLURLURLURLURL" Style="{StaticResource PhoneTextSmallStyle}"></TextBlock>
</StackPanel>
</StackPanel>
</Grid>
Il ressemble à la structure de base est la même. Mais quand j'ai utiliser XAML Spy pour analyser la Visualisation de l'arbre, UserControl 1 a moins de noeuds, mais il coûte un peu plus de mémoire. Pourquoi?
source d'informationauteur Eddie
Vous devez vous connecter pour publier un commentaire.
Vous pouvez être intéressé par les réponses à cette question: Dans quel ordre sont les Panneaux les plus efficaces en termes de temps de calcul et la performance?
La réponse courte est qu'il dépend de la façon dont de nombreux enfants les panneaux, et comment ces éléments sont dimensionnés et positionnés. Mais dans la plupart des cas, un
StackPanel
sera plus efficace qu'unGrid
qu'il a à la fois une plus rapide de mesurer et d'arrangement passer.Pour citer le accepté de répondre à:
Également en ce qui concerne la consommation de mémoire, les deux objets sont différents et prendre différentes quantités de mémoire, et un
Grid
aRowDefinitions
etColumnDefinitions
elle en contient plus d'objets que votreStackPanel