none
Problème de dépassement de mémoire dans l'affichage de données sur une datagrid RRS feed

  • Discussion générale

  • Bonjour,

    Je récupère des données d'une CRM que je stocke dans une liste <contract> ( une entité crm). Je fais un binding de cette liste sur ma datagrid. Le programme tourne sans arrêt bloque mon visual studio et pour finir je reçois au bout de plusieurs minutes un message de dépassement de mémoire. J'ai 7000  contract dans la liste. J'utilise un design MVVM .

    Merci pour votre aide.

    Cordialement

    • Type modifié Aurel Bera lundi 3 février 2014 09:34 disc
    jeudi 23 janvier 2014 13:09

Toutes les réponses

  • Bonjour

    Pouvez-vous vérifier si c'est votre cas:

    http://support.microsoft.com/kb/938416/fr-fr

    Voir aussi ce thread:

    http://blogs.msdn.com/b/calvin_hsia/archive/2010/09/27/10068359.aspx

    Cordialement,


    Aurel BERA, MSFT
    MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
    S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.

    jeudi 23 janvier 2014 13:47
  • Bonjour,

    Pour éviter ce genre de problème en WPF, on utilise le concept de "virtualisation" qui consiste à n'afficher que les données qui sont réellement vue par l'utilisateur.

    Regardez cet article : http://www.codeproject.com/Articles/34405/WPF-Data-Virtualization

    Cordialement


    Gilles TOURREAU - MVP C#
    Architecte logiciel/Consultant/Formateur Freelance - P.O.S Informatique
    Blog : http://gilles.tourreau.fr - Suivez-moi sur Twitter
    - MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5/4.0
    - MCSA : SQL Server 2012
    - MCITP : SQL Server 2008 Developper
    - MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5/4.0 / TFS 2010 / Windows Azure

    lundi 27 janvier 2014 00:13
    Modérateur
  • Merci je vais tester, j'avais pensé créer une pagination et remplacer ma CollectionView par cette vue paginée et rattacher cette vue à la datagrid.

    Mais mon problème persiste.

    Donc je vais regarder votre proposition

    Merci d'avance

    Cordialement

    mardi 4 février 2014 09:59
  • Bonjour,

    Merci. Pour le premier lien je ne peux faire du oneTime car base de données n'est pas statique. On peut modifier des infos dans la cRM, il faudrait que ces transformations soient répercutées.

    Pour deuxième je n'ai pas testé.

    Merci

    Cordialement

    mardi 4 février 2014 10:02
  • J'avais abandonné ma maquette, je reviens avec toutes les propositions de solutions, mais j'ai toujours un problème de dépassement de mémoire.

    J'ai cette exception qui est gérée à l'issue de mon binding :

    System.OutOfMemoryException

    Une exception de type 'System.OutOfMemoryException' a été levée.

    je crois que cela est probablement dû à la grande quantité de données que je stocke dans ma gridview.  Je n'ai aucune piste pour résoudre efficacement ce problème. Ce qui est bizarre je vois les infos qui devraient remontées dans mon designer VS studio 2010 ( XAML) partiellement.

    Merci pour l'aide

    mardi 21 octobre 2014 13:08
  • Bonjour,

    Comme je vous l'ai expliqué pour palier à ce problème on utilise le mécanisme de virtualisation du DataGrid de WPF :

    Regardez cet article : http://www.codeproject.com/Articles/34405/WPF-Data-Virtualization

    Cordialement


    Gilles TOURREAU - MVP C#
    Architecte logiciel/Consultant/Formateur Freelance - P.O.S Informatique
    Blog : http://gilles.tourreau.fr - Suivez-moi sur Twitter
    - MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5/4.0
    - MCSA : SQL Server 2012
    - MCITP : SQL Server 2008 Developper
    - MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5/4.0 / TFS 2010 / Windows Azure

    jeudi 23 octobre 2014 23:49
    Modérateur
  • Merci, j'utilisais un Framework qui ne va pas loin dans la virtualization et les opérations asynchronisation. je poursuis cette piste en limitant le nombre de données envoyées à la grid. je laisse le choix à l'utilisateur un mode de filtre une possibilité d'aller au delà des données que je lui montre pour le premier chargement.

    Je n'ai plus de problème. je suis .net 4.5 maintenant ça va.

    Merci.

    Cordialement

    mercredi 28 janvier 2015 09:57
  • Bonjour,

    La virtualisation est une bonne option et les variantes d'utilisation des modes async. je suis sur cette voie, j'ai réajusté mon Framework, j'utilisais une version ancienne qui ne supporte pas toutes les fonctions liées à la virtualisation. mon problème semble résolu en tout cas pour cette erreur.

    Merci


    • Modifié dc74 mercredi 28 janvier 2015 10:37 missed word
    mercredi 28 janvier 2015 10:36