문제

예를 들어 GlowCode 프로파일러 웹사이트를 보면 다음과 같이 나와 있습니다.

"GlowCode 6.2 및 x64 프로필 네이티브, 관리 및 혼합 C++, C#, .NET 코드"

무슨 뜻인가요?

도움이 되었습니까?

해결책

기본 코드는 메모리가 "관리"되지 않는 코드입니다. 당신은 그것을 추측했다고, 당신은 그것을 추측했다고, 당신은 메모리가 무료이고 당신을 위해 쓰레기 수집 및 기타 케이크를 할당하는 코드입니다.

혼합 코드는 관리되지 않는 계층을 호출하는 코드를 관리했을 때입니다. 일반적으로 순수한 관리되지 않는 C ++ DLL이 있고 p/invoke를 사용하여 .NET에서 호출합니다.

다른 팁

네이티브 코드는 OS에서 직접 작동하도록 컴파일됩니다.그러나 관리 코드는 사전 컴파일(Java 언어의 바이트코드)된 다음 런타임 시 Just In Time 컴파일러에 의해 네이티브 코드로 처리됩니다.관리 코드에는 VM이 ​​실제로 사용할 때까지 기계어 코드가 생성되지 않기 때문에 다른 운영 체제에서 실행될 가능성이 있다는 흥미로운 부작용이 있습니다.이렇게 하면 Windows에서 .NET 앱을 실행할 수 있을 뿐만 아니라 Mono 런타임이 설치된 Linux 또는 Mac에서도 실행할 수 있습니다.이식성은 현재 Java만큼 깨끗하지는 않지만(Microsoft의 자연적으로 닫힌 아키텍처로 인해) 개념은 그대로 유지됩니다.

관리되지 않는 앱을 ​​실행하는 경우 지정된 OS/하드웨어에 대해 실행되도록 코드가 컴파일되었습니다.다른 OS/명령어 세트로의 이식성은 손실되므로 실행하려면 다시 컴파일해야 합니다.

기본 코드는 컴퓨터가 실행중인 컴퓨터의 "기본"머신 언어로 작성되어 프로세서에 의해 직접 실행됩니다.

관리 코드는 다른 프로그램을 실행 해야하는 특별 언어로 작성됩니다 (즉, 관리). 이 다른 프로그램은 종종 특수 언어를 해석 할 때 통역사라고합니다.

C 및 C ++ 프로그램은 기본입니다.

Java 및 C# (및 해당 문제에 대한 모든 .NET 언어)이 관리됩니다.

Managed C ++는 .NET 통역사에서 실행되는 특수 형태의 C ++입니다.

혼합 프로그램은 기본 및 관리되는 코드를 사용하는 프로그램입니다.

CLR (Common Language Runtime)의 제어하에 실행되는 코드를 관리 코드라고합니다. CLR에서 실행되지 않는 코드는 기본 코드라고합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top