Подтвердить что ты не робот

Разница между собственным и управляемым кодом?

Например, при просмотре веб-сайта профайлера GlowCode говорится:

"GlowCode 6.2 и x64 - собственный, управляемый и смешанный С++, С#,.NET-код"

Что они означают?

4b9b3361

Ответ 1

Машинный код является кодом, чья память не "управляемой", как, память не освобождается для вас (С++ и C удалить свободный, например), не подсчет ссылок, нет мусора. Управляемый код, как вы догадались, это код, чья память свободна и выделена для вас, сборка мусора и другие полезные свойства.

Смешанный код - это когда вы управляете кодом, который вызывает неуправляемый уровень. Обычно, когда у вас есть чистая неуправляемая С++ DLL, и вы вызываете ее из .NET с помощью P/invoke.

Ответ 2

Собственный код скомпилирован для работы непосредственно с ОС. Управляемый код, однако, предварительно скомпилирован (байт-код в Java-говорить), но затем обрабатывается компилятором Just In Time в собственный код во время выполнения. Управляемый код имеет интересный побочный эффект наличия возможности работы в разных операционных системах, поскольку машинный код не создается до тех пор, пока виртуальная виртуальная машина фактически не использует его. Таким образом, вы можете запускать .NET-приложения в Windows, а также запускать их на Linux или Mac, на которых установлена ​​среда исполнения Mono. Переносимость в настоящее время не такая чистая, как Java (из-за естественной замкнутой архитектуры Microsoft), но концепция остается.

Если вы используете неуправляемое приложение, код был скомпилирован для выполнения для указанной ОС/оборудования. Любая переносимость другого набора OS/команд теряется и должна быть перекомпилирована для выполнения.

Ответ 3

Внутренний код написан на "родном" языке машины на компьютере, на котором он запущен, и выполняется непосредственно процессором.

Управляемый код написан на специальном языке, который требует выполнения другой программы (т.е. управления). Эта другая программа часто называется интерпретатором, поскольку она интерпретирует специальный язык.

Программы C и С++ являются родными.

Управляются Java и С# (и все языки .NET).

Управляемый С++ - это специальная форма С++, которая работает в интерпретаторе .NET.

Смешанная программа - это программа, которая использует код, который является как родным, так и управляемым.

Ответ 4

Код, который запускается под управлением среды общего языка (CLR), называется управляемым кодом. Код, который не запускается в среде CLR, известен как собственный код.