Les meilleures pratiques pour optimiser la mémoire en C#

Quelles sont les meilleures pratiques pour optimiser la mémoire en C#.

Je suis en utilisant la technique suivante pour optimiser ma mémoire.

  1. Disposer d'un objet après l'utilisation ou à la rendre nulle.
  2. Utiliser try/finally ou à l'aide de bloc.
  3. Utilisation GC.Collect() si nécessaire.
  4. Supprimer inutilement l'initialisation de l'objet.
  5. Gérer le cache d'Image.
  6. Mange des données BLOB, Mémoire de flux de flux de fichiers et

Même si il y a des fuites de mémoire.

Mon application utilise choses suivantes:

  1. De traitement de fichiers de configuration,
  2. À l'aide d'autres fichiers XML.
  3. À l'aide de fonctions d'image zoom avant, zoom arrière, affichage de différents types d'images, changer la couleur d'images, l'enregistrement des données en xml.
  4. L'enregistrement de données dans SQL server.
  • Je n'ai aucune idée de quoi vous parlez.
  • Pourquoi pensez-vous que vous avez à faire tout cela, autre que le using des blocs? C# n'a pas l'habitude de souffrir de fuites de mémoire.
  • Il y a très peu de cas, où vous devez manuellement appel GC.Collect.
  • Il n'y a pas qu'une seule façon, pour "optimiser" la mémoire, je pense que vous devez décrire votre problème, de sorte qu'il peut être diagnostiqué en premier. Qu'entendez-vous par "Même si il y a des fuites de mémoire"? Si vous n'avez pas un problème (encore), alors vous devez attendre avec "l'optimisation" jusqu'à ce que vous avez un problème concret. En attendant, il suffit de suivre les meilleures pratiques telles que l'utilisation d'Éliminer correctement.
  • Je ne suis pas en mesure de suivre que de où la mémoire est une fuite.
  • Si les données sont utilisées, comme le niveau de la classe, alors comment puis-je utiliser l'aide du bloc pour que.
  • Si jetables de données est utilisé dans un domaine de votre classe, alors que la classe doit également être IDisposable, et celui qui l'utilise doit utiliser using(). Pour détecter les fuites de mémoire utiliser un profiler comme CLRProfiler ou les FOURMIS Profiler.

InformationsquelleAutor MK Sharma | 2014-01-10