質問

は、例えば、GlowCodeプロファイラーのウェブサイトを見たとき、それは言います:

この "GlowCode 6.2およびx64プロファイルのネイティブは、管理、および混合C ++、C#、.NETコード"

、彼らが何を意味するのですか?

役に立ちましたか?

解決

ネイティブコードは、そのメモリ「管理」されていない、のように、メモリが解放されていないあなたのためのコード(C ++ Cの自由、例えばを削除して)、無参照カウント、ないガベージコレクションがあります。マネージドコードは、あなたがそれを推測し、そのメモリの自由とあなた、ガベージコレクションや他のグッズ用に割り当てられているコードです。

混合コードを使用すると、管理対象外の層の上に呼び出すコードを管理しているときです。通常、あなたは純粋なアンマネージドC ++ DLLを持っていて、Pを使用して、.NETからそれを呼び出すときに/呼び出します。

他のヒント

ネイティブコードがOSを直接操作するようにコンパイルされます。マネージコードは、しかし、(Javaを話す中のバイトコード)プリコンパイルされたが、その後、実行時にネイティブコードにジャストでタイムコンパイラによって処理されます。 VMが実際にそれを使用するまで、マシンコードが作成されていないため、マネージコードは、異なるオペレーティングシステム上で実行されている可能性を持つのは興味深い副作用があります。この方法では、Windows上の.NETアプリケーションを実行しても、MonoランタイムがインストールされているLinuxまたはMac上でそれらを実行することができます。移植は、Javaが(理由は、Microsoftの自然に閉じアーキテクチャの)ですが、コンセプトが残っ現在ほどきれいではありません。

あなたが管理されていないアプリケーションを実行している場合は、コードが指定されたOS /ハードウェアのために動作するようにコンパイルされています。別のOS /命令セットのいずれかの移植性が失われ、実行するために再コンパイルする必要があります。

ネイティブコードは、それを実行しているコンピュータの「ネイティブ」の機械語で書かれており、プロセッサによって直接実行されます。

マネージドコードは(すなわち管理)、それを実行するために別のプログラムを必要とする特殊な言語で書かれています。それは特別な言語を解釈するように、この他のプログラムは、多くの場合、インタプリタと呼ばれます。

CおよびC ++プログラムはネイティブです。

JavaやC#(およびそのことについては、すべての.NET言語)が管理されています。

マネージドC ++は、.NETインタプリタで実行するC ++の特殊な形式です。

混合プログラムは、ネイティブおよび管理の両方でコードを使用するプログラムである。

共通言語ランタイム(CLR)の制御下で実行されるコードは、マネージコードとして知られています。 CLRの下で実行されていないコードは、ネイティブコードとして知られています。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top