ngen和profiling

soh*_*hum 6 .net profiling ngen visual-studio-2010

我正在尝试使用NGen来查看我的应用程序的本机映像是否比.NET更好.但是,我在弄清楚该怎么做时遇到了一些麻烦.

我的应用程序名为MyApp.exe,它有几个依赖DLL.

我打开了VS 2010命令提示符并运行:

ngen install MyApp.exe /Profile
Run Code Online (Sandbox Code Playgroud)

命令输出未表明遇到任何问题.

然后我去了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应用程序."

命令输出表示Access被拒绝.

我有两个问题:

  1. 如何运行此程序以便我可以执行本机版本.
  2. 我该如何进行剖析呢?看起来我无法在VS2010探查器中找到该文件夹​​,因为它在资源管理器中无法看到.

谢谢.

soh*_*hum 1

看来我应该多读一点。似乎我可以只执行传递给 NGEN 的 EXE,它应该自动从缓存加载本机内容。

另一个问题是我必须使用 /profile 和 /debug 标志运行 ngen 以确保我可以同时执行这两项操作。

这是关于这个问题的一个很好的教程:

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