3 votes

UWP périphérique mémoire totale

Comment déterminez-vous la mémoire totale d'un périphérique ? J'aimerais utiliser un flux de programme séquentiel sur les périphériques à faible mémoire et un flux plus asynchrone sur les périphériques à mémoire élevée.

Exemple : Sur un périphérique avec 1 Go de mémoire, mon programme fonctionne mais sur un appareil avec 512 Mo de mémoire, mon programme rencontre une exception OutOfMemory car il met en cache des images de plusieurs sites de manière asynchrone.

4voto

Glen Thomas Points 6356

La classe MemoryManager a quelques propriétés statiques pour obtenir l'utilisation actuelle et la limite de mémoire pour l'application.

// Obtient l'utilisation actuelle de la mémoire de l'application.
MemoryManager.AppMemoryUsage

// Obtient le niveau d'utilisation de la mémoire de l'application.
MemoryManager.AppMemoryUsageLevel

// Obtient la limite d'utilisation de la mémoire de l'application.
MemoryManager.AppMemoryUsageLimit

Vous pouvez réagir au changement de limite en utilisant l'événement MemoryManager.AppMemoryUsageLimitChanging

private void OnAppMemoryUsageLimitChanging(
    object sender, AppMemoryUsageLimitChangingEventArgs e)
{
    Debug.WriteLine(String.Format("AppMemoryUsageLimitChanging: ancienne={0} Mo, nouvelle={1} Mo", 
        (double)e.OldLimit / 1024 / 1024,
        (double)e.NewLimit / 1024 / 1024));
}

Vous pouvez utiliser la limite de mémoire de l'application pour décider de la meilleure façon de gérer votre allocation de mémoire.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X