Разное

Microsoft net framework ngen: Ngen.exe (генератор образов в машинном коде) — .NET Framework

Повышение производительности запуска с помощью NGen — EF6

Twitter LinkedIn Facebook Адрес электронной почты

  • Статья
  • Чтение занимает 4 мин

Примечание

Только в EF6 и более поздних версиях. Функции, API и другие возможности, описанные на этой странице, появились в Entity Framework 6. При использовании более ранней версии могут быть неприменимы некоторые или все сведения.

Платформа .NET Framework поддерживает создание собственных образов для управляемых приложений и библиотек в качестве способа ускорить запуск приложений, а также в некоторых случаях использует меньше памяти. Образы машинного кода создаются путем преобразования сборок управляемого кода в файлы, содержащие инструкции машинного кода перед выполнением приложения, что избавляет от необходимости создавать собственные инструкции во время выполнения приложения.

До версии 6 основные библиотеки среды выполнения EF были частью платформа .NET Framework, а собственные образы были созданы автоматически для них. Начиная с версии 6 вся среда выполнения EF была объединена в пакет NuGet EntityFramework. Теперь образы машинного кода должны создаваться с помощью средства командной строки NGen.exe для получения аналогичных результатов.

Эмпирические наблюдения показывают, что собственные образы сборок среды выполнения EF могут сократиться между 1 и 3 секундами времени запуска приложения.

Использование NGen.exe

Самой основной функцией средства NGen.exe является установка (т. е. создание и сохранение на диске) собственных образов сборки и всех его прямых зависимостей. Вот как это можно достичь:

  1. Откройте окно командной строки с правами администратора.

  2. Измените текущий рабочий каталог на расположение сборок, для которого требуется создать собственные образы:

    cd <*Assemblies location*>  
    
  3. В зависимости от операционной системы и конфигурации приложения может потребоваться создать собственные образы для 32-разрядной архитектуры, 64-разрядной архитектуры или для обоих.

    Для 32-разрядного запуска:

    %WINDIR%\Microsoft.NET\Framework\v4.0.30319\ngen install <Assembly name>  
    

    Для 64-разрядного запуска:

    %WINDIR%\Microsoft. NET\Framework64\v4.0.30319\ngen install <Assembly name>  
    

Совет

Создание собственных образов для неправильной архитектуры является очень распространенной ошибкой. Если вы сомневаетесь, вы можете просто создать собственные образы для всех архитектур, которые применяются к операционной системе, установленной на компьютере.

NGen.exe также поддерживает другие функции, такие как удаление и отображение установленных собственных образов, постановка в очередь создания нескольких образов и т. д. Дополнительные сведения об использовании см. в документации поNGen.exe.

Когда следует использовать NGen.exe

При выборе сборок для создания собственных образов в приложении на основе EF версии 6 или более поздней следует рассмотреть следующие варианты:

  • Основная сборка среды выполнения EF, EntityFramework.dll: типичное приложение на основе EF выполняет значительный объем кода из этой сборки при запуске или при первом доступе к базе данных. Следовательно, создание собственных образов этой сборки приведет к наибольшему повышению производительности запуска.
  • Любая сборка поставщика EF, используемая приложением: время запуска также может немного выиграть от создания собственных образов этих файлов. Например, если приложение использует поставщик EF для SQL Server необходимо создать собственный образ для EntityFramework.SqlServer.dll.
  • Сборки и другие зависимости приложения. В документации поNGen.exe рассматриваются общие критерии выбора сборок для создания собственных образов и влияния собственных образов на безопасность, расширенных параметров, таких как «жесткая привязка», таких как использование собственных образов в сценариях отладки и профилирования и т. д.

Совет

Тщательно измеряйте влияние использования собственных образов как на производительность запуска, так и на общую производительность приложения и сравнивайте их с фактическими требованиями. В то время как собственные образы обычно помогают повысить производительность запуска и в некоторых случаях сократить использование памяти, не все сценарии будут пользоваться одинаковой выгодой. Например, при устойчивом выполнении состояния (т. е. после вызова всех методов, используемых приложением по крайней мере один раз) код, созданный JIT-компилятором, может немного повысить производительность, чем собственные образы.

Использование NGen.exe на компьютере разработки

Во время разработки JIT-компилятор .NET обеспечивает лучший общий компромисс для кода, который часто меняется. Создание собственных образов для скомпилированных зависимостей, таких как сборки среды выполнения EF, может помочь ускорить разработку и тестирование, вырезав несколько секунд в начале каждого выполнения.

Хорошим местом для поиска сборок среды выполнения EF является расположение пакета NuGet для решения. Например, для приложения, использующее EF 6.0.2 с SQL Server и нацеливание на .NET 4.5 или более поздней версии, можно ввести следующее в окне командной строки (не забудьте открыть его от имени администратора):

cd <Solution directory>\packages\EntityFramework.6.0.2\lib\net45
%WINDIR%\Microsoft. NET\Framework\v4.0.30319\ngen install EntityFramework.SqlServer.dll
%WINDIR%\Microsoft.NET\Framework64\v4.0.30319\ngen install EntityFramework.SqlServer.dll

Примечание

Это использует тот факт, что установка собственных образов для поставщика EF для SQL Server также по умолчанию установит собственные образы для основной сборки среды выполнения EF. Это работает потому, что NGen.exe может обнаружить, что EntityFramework.dll является прямой зависимостью сборки EntityFramework.SqlServer.dll, расположенной в одном каталоге.

Создание собственных образов во время установки

Набор средств WiX поддерживает постановку в очередь собственных образов для управляемых сборок во время установки, как описано в этом практическом руководстве. Другой альтернативой является создание пользовательской задачи установки, которая выполняет команду NGen.exe.

Проверка использования собственных образов для EF

Чтобы убедиться, что конкретное приложение использует собственную сборку, найдите загруженные сборки с расширением «. ni.dll» или «.ni.exe». Например, образ в машинном коде для основной сборки среды выполнения EF будет вызываться EntityFramework.ni.dll. Простой способ проверить загруженные сборки .NET процесса — использовать обозреватель процессов.

Другие моменты, о которых следует знать

Создание собственного образа сборки не следует путать с регистрацией сборки в глобальном кэше сборок (глобальный кэш сборок). NGen.exe позволяет создавать образы сборок, которые не находятся в GAC, и на самом деле несколько приложений, использующих определенную версию EF, могут совместно использовать один и тот же собственный образ. Хотя Windows 8 может автоматически создавать собственные образы для сборок, размещенных в глобальном кэше сборок, среда выполнения EF оптимизирована для развертывания вместе с приложением, и мы не рекомендуем зарегистрировать его в глобальном кэше сборок, так как это негативно влияет на разрешение сборок и обслуживание приложений среди других аспектов.

Что такое .

NET Framework NGEN v4.0.30319 Critical и как это исправить?

WINDOWS проблемы с .NET Framework NGEN v4.0.30319 Critical чаще всего связаны с повреждением или отсутствием файла Microsoft Windows. Как правило, самый лучший и простой способ устранения ошибок, связанных с файлами WINDOWS, является замена файлов. Помимо прочего, в качестве общей меры по профилактике и очистке мы рекомендуем использовать очиститель реестра для очистки любых недопустимых записей файлов, расширений файлов WINDOWS или разделов реестра, что позволит предотвратить появление связанных с ними сообщений об ошибках.

Наша коллекция файлов .NET Framework NGEN v4.0.30319 Critical для %%os%% представлена в списках ниже. В настоящее время в нашем каталоге для загрузки могут отсутствовать некоторые файлы (такие как .NET Framework NGEN v4.0.30319 Critical), но их можно запросить, нажав на кнопку Request (Запрос) ниже. Если ниже отсутствует необходимая версия файла, мы рекомендуем вам связаться непосредственно с Microsoft Corporation.

Правильное расположение файла .NET Framework NGEN v4.0.30319 Critical является решающим фактором в успешном устранении ошибок подобного рода. Однако, не будет лишним выполнить быструю проверку. Повторно запустите Microsoft Windows, чтобы убедиться в успешном решении проблемы.

.NET Framework NGEN v4.0.30319 Critical Описание файла
Формат файла: WINDOWS
Тип приложения:
Application:Microsoft Windows
Версия:6.3.9600.16384
Автор: Microsoft Corporation
 
File:.NET Framework NGEN v4.0.30319 Critical  
KB:3470
SHA-1:cfb07bb32d50b657ede94b345e2749b22f8730ec
MD5:f13d941e4a7a1f7e7201d865263ae31a
CRC32:

Продукт Solvusoft

Загрузка
WinThruster 2023 — Сканировать ваш компьютер на наличие ошибок реестра в . NET Framework NGEN v4.0.30319 Critical

Windows
11/10/8/7/Vista/XP

Установить необязательные продукты — WinThruster (Solvusoft) | Лицензия | Политика защиты личных сведений | Условия | Удаление

WINDOWS

.NET Framework NGEN v4.0.30319 Critical

Идентификатор статьи:   1359493





.NET Framework NGEN v4.0.30319 Critical

1

Операционная система

Windows 8.1

2

Application

Microsoft Windows

&rangle;


FilenameИдентификатор файла (контрольная сумма MD5)РазмерЗагрузить
+ .NET Framework NGEN v4.0.30319 Criticalf13d941e4a7a1f7e7201d865263ae31a3. 39 KB
ProgramMicrosoft Windows 6.3.9600.16384
РазработчикMicrosoft Corporation
OSWindows 8.1
Тип 64-разрядная (x64)
Размер3470
MD5f13d941e4a7a1f7e7201d865263ae31a
ША1cfb07bb32d50b657ede94b345e2749b22f8730ec
Контрольная сумма SHA256:2b39402e8fa8b343b2ad65b0ca00bf79ad05c65413bcd8539d8d86aaaab8f81d
CRC32:
Расположение файла C:\Windows\System32\Tasks\Microsoft\Windows\. N …


Классические проблемы .NET Framework NGEN v4.0.30319 Critical

Проблема Microsoft Windows, связанная с .NET Framework NGEN v4.0.30319 Critical, включает в

  • «Ошибка: .NET Framework NGEN v4.0.30319 Critical. «
  • «.NET Framework NGEN v4.0.30319 Critical перемещен или отсутствует. «
  • «Файл не найден: .NET Framework NGEN v4.0.30319 Critical»
  • «Не удалось загрузить модуль для .NET Framework NGEN v4.0.30319 Critical. «
  • «Ошибка регистрации .NET Framework NGEN v4.0.30319 Critical. «
  • «Ошибка времени выполнения Microsoft Windows: .NET Framework NGEN v4.0.30319 Critical»
  • «Ошибка загрузки: .NET Framework NGEN v4.0.30319 Critical. «

Ошибки .NET Framework NGEN v4.0.30319 Critical возникают во время установки программы, когда программа, связанная с .NET Framework NGEN v4. 0.30319 Critical (например, Microsoft Windows) работает во время запуска или завершения работы Windows или редко во время процесса установки Windows. Крайне важно отметить, когда возникают проблемы .NET Framework NGEN v4.0.30319 Critical, так как это помогает устранять проблемы Microsoft Windows (и сообщать Microsoft Corporation).


Эпицентры .NET Framework NGEN v4.0.30319 Critical Головные боли

Проблемы Microsoft Windows и .NET Framework NGEN v4.0.30319 Critical возникают из отсутствующих или поврежденных файлов, недействительных записей реестра Windows и вредоносных инфекций.

В частности, проблемы .NET Framework NGEN v4.0.30319 Critical возникают с:

  • Поврежденная или недопустимая запись реестра .NET Framework NGEN v4.0.30319 Critical.
  • Вирус или вредоносное ПО поврежден .NET Framework NGEN v4.0.30319 Critical.
  • .NET Framework NGEN v4.0.30319 Critical ошибочно удален или злонамеренно программным обеспечением, не связанным с приложением Microsoft Windows.
  • Другое программное приложение, конфликтующее с .NET Framework NGEN v4.0.30319 Critical.
  • Поврежденная загрузка или неполная установка программного обеспечения Microsoft Windows.


Повышение производительности при запуске с помощью NGen — EF6

Редактировать

Твиттер LinkedIn Фейсбук Эл. адрес

  • Статья
  • 4 минуты на чтение

Примечание

Только EF6 и более поздние версии — функции, API и т. д., обсуждаемые на этой странице, были введены в Entity Framework 6. Если вы используете более раннюю версию, часть или вся информация не применима.

.NET Framework поддерживает создание собственных образов для управляемых приложений и библиотек, чтобы ускорить запуск приложений и в некоторых случаях использовать меньше памяти. Собственные образы создаются путем преобразования сборок управляемого кода в файлы, содержащие собственные машинные инструкции, до выполнения приложения, что избавляет компилятор .NET JIT (Just-In-Time) от необходимости генерировать собственные инструкции во время выполнения приложения.

До версии 6 основные библиотеки среды выполнения EF были частью .NET Framework, и для них автоматически создавались собственные образы. Начиная с версии 6 вся среда выполнения EF была объединена в NuGet-пакет EntityFramework. Теперь для получения аналогичных результатов необходимо создавать собственные образы с помощью инструмента командной строки NGen.exe.

Эмпирические наблюдения показывают, что собственные образы сборок среды выполнения EF могут сократить время запуска приложения на 1–3 секунды.

Как использовать NGen.

exe

Самая основная функция инструмента NGen.exe — «установить» (то есть создать и сохранить на диске) собственные образы для сборки и всех ее непосредственных зависимостей. Вот как это сделать:

  1. Откройте окно командной строки от имени администратора.

  2. Измените текущий рабочий каталог на расположение сборок, для которых вы хотите создать собственные образы:

     cd <*Расположение сборки*>
     
  3. В зависимости от вашей операционной системы и конфигурации приложения вам может потребоваться создать собственные образы для 32-битной архитектуры, 64-битной архитектуры или для обеих.

    Для 32-битной версии:

     %WINDIR%\Microsoft.NET\Framework\v4.0.30319\ngen install <имя сборки>
     

    Для 64-битной версии:

     %WINDIR%\Microsoft.NET\Framework64\v4.0.30319\ngen install <имя сборки>
     

Совет

Генерация собственных образов для неправильной архитектуры является очень распространенной ошибкой. Если вы сомневаетесь, вы можете просто создать собственные образы для всех архитектур, применимых к операционной системе, установленной на машине.

NGen.exe также поддерживает другие функции, такие как удаление и отображение установленных собственных образов, постановка в очередь создания нескольких образов и т. д. Дополнительные сведения об использовании см. в документации по NGen.exe.

Когда использовать NGen.exe

Когда нужно решить, для каких сборок создавать собственные образы в приложении на основе EF версии 6 или более поздней, следует рассмотреть следующие варианты:

  • Основная сборка среды выполнения EF, EntityFramework.dll : типичный EF Приложение на основе этой сборки выполняет значительный объем кода при запуске или при первом доступе к базе данных. Следовательно, создание собственных образов этой сборки даст наибольший прирост производительности при запуске.
  • Любая сборка поставщика EF, используемая вашим приложением. : Время запуска также может немного выиграть от создания их собственных образов. Например, если приложение использует поставщика EF для SQL Server, вам потребуется создать собственный образ для EntityFramework.SqlServer.dll.
  • Сборки вашего приложения и другие зависимости : документация NGen.exe охватывает общие критерии выбора сборок для создания собственных образов и влияние собственных образов на безопасность, дополнительные параметры, такие как «жесткая привязка», такие сценарии, как использование собственного изображения в сценариях отладки и профилирования и т. д.

Совет

Убедитесь, что вы тщательно измерили влияние использования собственных образов как на производительность запуска, так и на общую производительность вашего приложения, и сравните их с фактическими требованиями. Хотя нативные образы обычно помогают повысить производительность при запуске и в некоторых случаях сократить использование памяти, не все сценарии получат одинаковое преимущество. Например, при стационарном выполнении (т. е. после того, как все методы, используемые приложением, были вызваны хотя бы один раз) код, сгенерированный JIT-компилятором, может на самом деле давать немного более высокую производительность, чем собственные изображения.

Использование NGen.exe на компьютере для разработки

Во время разработки компилятор .NET JIT предлагает наилучший общий компромисс для часто изменяющегося кода. Создание собственных образов для скомпилированных зависимостей, таких как сборки среды выполнения EF, может помочь ускорить разработку и тестирование, сократив несколько секунд в начале каждого выполнения.

Хорошее место для поиска сборок среды выполнения EF — расположение пакета NuGet для решения. Например, для приложения, использующего EF 6.0.2 с SQL Server и предназначенного для .NET 4.5 или более поздней версии, вы можете ввести в окне командной строки следующее (не забудьте открыть его от имени администратора):

 cd <каталог решения>\packages\EntityFramework. 6.0.2\lib\net45
%WINDIR%\Microsoft.NET\Framework\v4.0.30319\ngen install EntityFramework.SqlServer.dll
%WINDIR%\Microsoft.NET\Framework64\v4.0.30319\ngen install EntityFramework.SqlServer.dll
 

Примечание

При этом используется тот факт, что при установке собственных образов для поставщика EF для SQL Server по умолчанию также устанавливаются собственные образы для основной сборки среды выполнения EF. Это работает, потому что NGen.exe может определить, что EntityFramework.dll является прямой зависимостью сборки EntityFramework.SqlServer.dll, расположенной в том же каталоге.

Создание собственных образов во время установки

Набор инструментов WiX поддерживает создание очереди создания собственных образов для управляемых сборок во время установки, как описано в этом практическом руководстве. Другой альтернативой является создание пользовательской задачи установки, которая выполняет команду NGen.exe.

Проверка того, что собственные образы используются для EF

Вы можете убедиться, что конкретное приложение использует собственную сборку, выполнив поиск загруженных сборок с расширением «. ni.dll» или «.ni.exe». Например, собственный образ для основной сборки среды выполнения EF будет называться EntityFramework.ni.dll. Простой способ проверить загруженные сборки .NET процесса — использовать Process Explorer.

Что еще нужно знать

Создание собственного образа сборки не следует путать с регистрацией сборки в GAC (глобальном кэше сборок) . NGen.exe позволяет создавать образы сборок, которых нет в GAC, и фактически несколько приложений, использующих определенную версию EF, могут использовать один и тот же собственный образ. Хотя Windows 8 может автоматически создавать собственные образы для сборок, помещенных в GAC, среда выполнения EF оптимизирована для развертывания вместе с вашим приложением, и мы не рекомендуем регистрировать ее в GAC, так как это негативно влияет на разрешение сборок и обслуживание ваших приложений среди другие аспекты.

Обратная связь

Просмотреть все отзывы о странице

Почему не запускается служба Microsoft .

NET Framework NGEN v4.0.30319_x64?

спросил

Изменено 8 лет, 9несколько месяцев назад

Просмотрено 49 тысяч раз

Я только что установил .NET Framework 4.0 и вижу Microsoft .NET Framework NGEN v4.0.30319_x64 в списке services.msc . Он установлен для Автоматический отложенный пуск . Однако он находится в остановленном состоянии, и когда я пытаюсь запустить службу, я получаю сообщение:

.

Служба Microsoft .NET Framework NGEN v4.0.30319_x64 на локальном компьютере была запущена, а затем остановлена. Некоторые службы автоматически останавливаются, если они не используются другими службами или программами.

Почему я не могу запустить эту службу?

  • услуги
  • . net-framework
  • ngen

2

Это служба, которая запускается и останавливается по мере необходимости с помощью исполняемого файла ngen (генератора собственных образов). Согласно этой странице MSDN, служба обычно запускается вместе с программой установки (установщиком) или путем прямого взаимодействия с исполняемым файлом ngen.

Насколько мне известно, описанное вами поведение является стандартным/правильным поведением.

Служба .NET Framework NGEN v4.0.30319_x86 не запускается — нормально? есть способ проверить установку:

NGEN расшифровывается как «Генерация собственного образа». Это инструмент, который повышает производительность управляемых приложений. Для вашего беспокойства я бы посоветовал вам прочитать следующие две полезные ссылки, чтобы понять NGEN:

  • Преимущества производительности NGen. упоминаний:

    NGen относится к процессу предварительной компиляции исполняемых файлов промежуточного языка Microsoft® (MSIL) в машинный код перед выполнением. Это приводит к двум основным преимуществам производительности. Во-первых, это сокращает время запуска приложения, устраняя необходимость компилировать код во время выполнения. Во-вторых, это улучшает использование памяти, позволяя использовать кодовые страницы для нескольких процессов.

  • Ngen.exe (генератор собственных изображений) упоминает:

    Генератор собственных образов (Ngen.exe) — это инструмент, повышающий производительность управляемых приложений. Ngen.exe создает собственные образы, которые представляют собой файлы, содержащие скомпилированный машинный код для конкретного процессора, и устанавливает их в кэш собственных образов на локальном компьютере. Среда выполнения может использовать собственные образы из кэша вместо JIT-компилятора для компиляции исходной сборки.

    Этот инструмент автоматически устанавливается вместе с Visual Studio и Windows SDK. Для запуска средства рекомендуется использовать командную строку Visual Studio или командную строку Windows SDK (оболочку CMD).

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *