Question

Par exemple, quand on regarde le GlowCode site profileur il dit:

"GlowCode 6.2 et natif de profil x64, gérés et mixte C ++, C #, le code .NET"

Que signifient-ils?

Était-ce utile?

La solution

Le code natif est le code dont la mémoire n'est pas « géré », comme dans la mémoire n'est pas libéré pour vous (C ++ et C supprimer est gratuit, par exemple), sans compter de référence, pas de collecte des ordures. code managé, vous l'aurez deviné, est le code dont la mémoire est libre et allouée pour vous, la collecte des ordures et autres goodies.

Code mixte est quand vous avez du code managé qui appelle sur une couche non géré. Normalement, lorsque vous avez une DLL non géré pure C ++ et vous l'appelez de .NET en utilisant P / Invoke.

Autres conseils

Le code natif est compilé pour travailler directement avec le système d'exploitation. Le code managé cependant, est précompilés (bytecode Java-parler), mais est ensuite traitée par le compilateur Just In Time code natif à l'exécution. Le code managé a pour effet secondaire intéressant d'avoir le potentiel de fonctionner sur différents systèmes d'exploitation, car le code de la machine n'est pas créé jusqu'à ce que la machine virtuelle utilise réellement. De cette façon, vous êtes en mesure d'exécuter des applications .NET sous Windows et également les exécuter sous Linux ou Mac qui ont le temps d'exécution Mono installé. La portabilité est pas actuellement propre que Java est (à cause de l'architecture naturelle fermée de Microsoft), mais le concept reste.

Si vous utilisez une application non géré, le code a été compilé pour exécuter le système d'exploitation / matériel désigné. Toute la portabilité à un autre OS / jeu d'instructions est perdue et doit être recompilé pour exécuter.

Le code natif est écrit dans la langue de la machine « native » de l'ordinateur qu'il fonctionne et est exécuté directement par le processeur.

Le code managé est écrit dans une langue spéciale qui nécessite un autre programme à exécuter (à savoir gérer) il. Cet autre programme est souvent appelé un interprète car il interprète la langue spéciale.

C et C ++ programmes sont natifs.

Java et C # (et toutes les langues .NET pour cette question) sont gérées.

Géré C ++ est une forme particulière de C ++ qui fonctionne dans l'interpréteur .NET.

Un programme mixte est un programme qui utilise le code qui est à la fois natif et géré.

Le code qui fonctionne sous le contrôle du Common Language Runtime (CLR) est connu sous le nom de code managé. Le code qui ne fonctionne pas sous le CLR est connu sous le nom de code natif.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top