Прекомпиляция asp.net решений для развертывания - PullRequest
2 голосов
/ 15 июля 2009

Я использую aspnet_compiler.exe для предварительной компиляции приложения для развертывания.

Однако я не думаю, что это работает по двум причинам:

  • Я вижу свои сборки приложений в папке C: \ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ Temporary ASP.NET Files, даже если я вручную очищаю этот каталог и перезапускаю приложение.
  • Хит производительности для JIT приложения присутствует. Это именно то, чего я хотел бы избежать, даже если это «один раз».

Вот что конкретно я делаю:

  1. Постройте решение в студии.
  2. execute aspnet_compiler.exe -v / Foo -pc: \ builddir c: \ deploydir (где Foo - это vdir, под которым запускается мое приложение, c: \ builddir - это место, где выполняется сборка студии, а c: \ deploydir - это место, где
  3. Затем я копирую c: \ deploydir на веб-сервер.
  4. У меня есть доступ http://localhost/Foo
  5. Через 30 секунд отображается приложение, и я вижу, что сборки были созданы во временных файлах ASP.NET.

Если это заметно, я использую .net 3.5 SP1 / Studio 2008 SP1. Отладка компиляции = false также устанавливается в web.config.

Ответы [ 2 ]

2 голосов
/ 15 июля 2009

Ваши два очка спорны:

  1. Предварительная компиляция ASP.NET не приводит к генерации собственного образа, поэтому издержки JIT все равно будут присутствовать. Также могут быть накладные расходы на создание рабочего процесса.

  2. Предварительная компиляция ASP.NET имеет возможность компилировать все (в том числе ASPX, ...) или просто исходный код (который можно указать с помощью переключателя -u). В последнем случае эти сборки будут по-прежнему генерироваться для файлов ASPX. В случае с первым, то, что вы видите, не является сборочным поколением. Среда выполнения просто копирует и кэширует сборки в /bin в Temporary ASP.NET Files. Вы можете подтвердить этот факт, сравнив байты за байтом сборок и убедившись, что они идентичны.

1 голос
/ 15 июля 2009

Предварительная компиляция сайта с помощью aspnet_compiler.exe не JIT не компилирует код - для этого вам потребуется ngen код.

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

...