Pergunta

Por exemplo, quando se olha para o site profiler do GlowCode diz:

"GlowCode 6.2 e perfil x64 nativo, gerenciado e misto C ++, C #, .NET código"

O que eles significam?

Foi útil?

Solução

código nativo é o código cuja memória não é "administrado", como em, a memória não é liberada para você (C ++' apagar e C do livre, por exemplo), nenhum contagem de referência, sem coleta de lixo. código gerenciado, você adivinhou, é o código cuja memória é gratuito e destinado para você, coleta de lixo e outras guloseimas.

código misto é quando você tiver o código gerenciado que as chamadas para um layer não gerenciado. Normalmente, quando você tem um não gerenciado ++ DLL C puro e você chamá-lo de .NET usando P / Invoke.

Outras dicas

código nativo é compilado para trabalhar diretamente com o OS. Código gerenciado no entanto, é pré-compilado (bytecode em Java-falar), mas é então processado pelo Just In Time Compiler para código nativo em tempo de execução. O código gerenciado tem o efeito colateral interessante de ter o potencial de funcionar com diferentes sistemas operacionais, porque o código de máquina não é criado até que a VM realmente usa-lo. Desta forma, você é capaz de executar aplicativos .NET em Windows e também executá-los em Linux ou Mac que têm o tempo de execução Mono instalado. A portabilidade não é tão limpo atualmente como Java é (por causa da arquitetura naturalmente fechado da Microsoft), mas o conceito permanece.

Se você estiver executando um aplicativo não gerenciado, o código foi compilado para executar para o sistema operacional designada / Hardware. Qualquer portabilidade para outro conjunto OS / instrução é perdido e deve ser recompilados para executar.

código nativo está escrito na linguagem de máquina "nativo" do computador que está sendo executado no e é executado diretamente pelo processador.

O código gerenciado é escrito em uma linguagem especial que requer um outro programa para ser executado (ou seja, gerenciar)-lo. Este outro programa é muitas vezes chamado de um intérprete como ele interpreta a linguagem especial.

programas

C e C ++ são nativas.

Java e C # (e todas as linguagens .NET para que o assunto) são geridos.

Dirigido C ++ é uma forma especial de C ++ que é executado no interpretador NET.

Um programa misto é um programa que o código usos que é nativo e gerenciado.

código que é executado sob o controle do Common Language Runtime (CLR) é conhecido como código gerenciado. Código que não é executado sob o CLR é conhecido como código nativo.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top