нген и профилирование - PullRequest
6 голосов
/ 24 июня 2011

Я пытаюсь использовать NGen, чтобы увидеть, работают ли собственные образы моего приложения лучше, чем .NET. Тем не менее, у меня возникли небольшие проблемы с выяснением того, что делать.

Мое приложение называется MyApp.exe и имеет несколько библиотек зависимостей.

Я открыл командную строку VS 2010 и запустил:

ngen install MyApp.exe /Profile

В выводе команды не было предложено никаких проблем.

Затем я пошел в C: \ Windows \ assembly, чтобы попытаться запустить EXE, но не смог найти его там (я на Windows 7). Небольшое копание подсказало мне использовать командную строку для просмотра C: \ Windows \ assembly \ NativeImages_v4.0.30319_32. В конце концов я смог найти там мой MyApp.ni.exe, но, конечно, не смог открыть содержащую его папку в проводнике.

Я попытался запустить программу, и она сказала мне:

"C: \ Windows \ assembly \ NativeImages_v4.0.30319_32 ... \ MyApp.ni.exe не является приложением Win32."

В выводе команды указано: Доступ запрещен.

У меня было два вопроса:

  1. Как мне запустить эту программу, чтобы я мог запустить собственную версию.
  2. Как бы я занялся профилированием? Похоже, я не смогу найти эту папку из профилировщика VS2010, потому что ее нельзя увидеть в проводнике.

Спасибо.

1 Ответ

1 голос
/ 24 июня 2011

Похоже, я должен был прочитать немного больше.Похоже, я могу просто выполнить EXE-файл, который был передан в NGEN, и он должен автоматически загрузить нативные данные из кэша.

Еще одна проблема заключается в том, что мне пришлось запустить ngen с флагами / profile и / debugчтобы убедиться, что я могу сделать оба.

Это хороший учебник по этому вопросу:

http://blogs.msdn.com/b/clrcodegeneration/archive/2010/04/27/ngen-getting-started-with-ngen-in-visual-studio.aspx

...