Partager via


Application d'ajout et de suppression de sollicitation de la mémoire, exemple

Mise à jour : novembre 2007

Cet exemple illustre l'interopérabilité entre le garbage collection et le code non managé.

Pour plus d'informations sur l'utilisation des exemples, consultez les rubriques suivantes :

Download sample

Pour générer l'exemple à partir de l'invite de commandes :

  1. Ouvrez la fenêtre d'invite de commandes et accédez à l'un des sous-répertoires spécifiques aux différents langages dans le répertoire GCDemo. Pour plus d'informations sur les paramètres requis et l'invite de commandes du Kit de développement logiciel (SDK), consultez Comment : définir des paramètres d'exemple.

  2. Tapez Msbuild GCDemoCS.sln ou msbuild GCDemoVB.sln à la ligne de commande, selon votre choix de langage de programmation.

Pour générer l'exemple à l'aide de Visual Studio :

  1. Ouvrez l'Explorateur Windows et accédez à l'un des sous-répertoires spécifiques aux différents langages dans le répertoire GCDemo.

  2. Double-cliquez sur le fichier GCDemoCS.sln ou GCDemoVB.sln, selon votre choix de langage de programmation, pour ouvrir le fichier dans Visual Studio.

  3. Dans le menu Générer, sélectionnez Générer la solution.

Pour exécuter l'exemple

  • Ouvrez une fenêtre d'invite de commandes et accédez au répertoire qui contient le nouveau fichier exécutable.

Configuration requise

Ces exemples requièrent des en-têtes Windows qui sont disponibles pour votre projet si vous les générez à l'aide de Microsoft Visual Studio 2005 ou de l'invite de commandes de Visual Studio 2005, ou si le Kit de développement Platform SDK (en anglais) est installé et spécifié dans un chemin d'accès Include.

Notes

Cet exemple illustre les nouveaux AddMemoryPressure et les méthodes RemoveMemoryPressure de la classe GC. Vous pouvez utiliser ces méthodes pour modifier le schéma de la stratégie du garbage collection pour les collections inférieures (zéro). Vous devez les utiliser pour donner un conseil au Garbage Collector (GC) chaque fois que le nombre de ressources non managées attribué est considérablement plus élevé que l'espace mémoire managé pour les mêmes ressources. Sans cette information, le Garbage Collector ne connaît pas la quantité de mémoire non managée, et peut donc sélectionner une stratégie inadaptée.

Exécutez simplement l'exemple et observez le nombre d'allocations réussies avec et sans sollicitation de la mémoire (vous remarquerez que les allocations sont plus réussies lorsque vous appliquez la sollicitation de façon appropriée). Observez également l'effet de la sollicitation de la mémoire sur le nombre de collections inférieures (zéro) : le Garbage Collector exécute plusieurs collections supplémentaires en cas de sollicitation.

Veillez à toujours associer aux sollicitations de la mémoire des suppressions de la même quantité de mémoire que la sollicitation.