existe-t-il un ensemble connu (documenté) de types .NET qui alloua la mémoire dans la partie non gérée de la mémoire de processus? p>
Par exemple, Microsoft Documents que l'infrastructure WPF a attribué une mémoire non gérée pour son modèle de rendu conservé afin d'optimiser les performances. Y a-t-il d'autres parties de telles parties de la framework .NET qui utilise de grandes quantités de mémoire non gérée? P>
3 Réponses :
Autant que je sache, il n'y a pas de document unique qui décrit ou identifie les classes dans le cadre utilise des ressources non gérées. La documentation MSDN pour la classe spécifique peut, mais cela vous obligerait à regarder des classes spécifiques. P>
Dans l'ensemble, c'est un pari sûr que nombre des classes utilisent un code non géré à un moment donné. Par exemple, de nombreux contrôles de formulaires Windows sont simplement des emballages autour des commandes Win32 afin de pouvoir utiliser des ressources non gérées. P>
S'il s'agit de En règle générale, si elle implémente Idisposable code> Il y a une très bonne chance qu'il possède des données non gérées, ou elle possède une classe gérée qui détient finalement des données non gérées. S'il a
finaliser () code>, il est signe qu'il détient directement des données non gérées. P>
Idisposable code>, alors
dispose () code> il dès que vous avez terminé. P>
Corrigé à "Idisposable". En outre, la règle la plus fiable est si elle implémente un finaliseur, il possède presque certainement des données non gérées.
En effet - la plupart des Idisposables CODE> articles ne i> (directement) font quelque chose de non géré - mais ils chaîne à quelque chose de ce que pourrait i>. Par exemple, il existe un
Idisposable code> dans les blocs d'itérateurs - mais rien n'a été non géré.
Vous devez faire attention lorsque la classe implémente Idisposable. Cela indique généralement une utilisation des ressources non limitables, qui ne sont toutefois pas limitées à la mémoire, mais peuvent également être des termes de fichiers, des prises etc. p>
Un bon indicateur pour cela est lorsque la classe utilise un INTPTR . P>