2010-03-30 8 views
0

Dans un AddIn Outlook sur lequel je travaille, j'utilise une liste pour récupérer tous les messages dans le dossier en cours, puis les traiter, puis les enregistrer. Tout d'abord, je crée une liste de tous les messages, puis je crée une autre liste à partir de la liste des messages, puis finalement je crée une troisième liste de messages qui doivent être déplacés. Essentiellement, ils sont tous des copies l'un de l'autre, et je l'ai fait de cette façon pour l'organiser. Est-ce que cela augmenterait les performances si je n'utilisais qu'une seule liste? Je pensais que les listes n'étaient que des références à l'objet réel.Utilisation de grandes listes

Répondre

3

Sans voir votre code, il est impossible de dire si vous créez des copies de la liste elle-même ou des copies du référence à la liste - ce dernier est préférable.

Une autre chose à considérer est de savoir si vous pouvez ou non diffuser les messages à partir d'Outlook en utilisant un iterator block. En utilisant un List<T> vous tamponnez actuellement toute la séquence de messages, ce qui signifie que vous devez les conserver tous en mémoire, en les traitant un à la fois. La diffusion des messages réduirait la pression sur la mémoire de votre application, car il suffirait de garder chaque message en mémoire suffisamment longtemps pour le traiter.

0

À moins que vos listes contiennent 10 millions d'éléments ou plus, cela ne devrait pas poser de problème.

Outlook semble avoir un problème beaucoup plus petites boîtes aux lettres de taille, donc je dirais que vous êtes à peu près sûr.

Questions connexes