.net - ngen 和分析

标签 .net visual-studio-2010 profiling ngen

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

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

我打开了 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 应用程序。”

命令输出表示拒绝访问。

我有两个问题:
  • 我怎样才能运行这个程序,以便我可以执行 native 版本。
  • 我将如何对其进行分析?看起来我将无法从 VS2010 探查器中找到该文件夹​​,因为它在资源管理器中看不到。

  • 谢谢。

    最佳答案

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

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

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

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

    关于.net - ngen 和分析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6472083/

    相关文章:

    c# - 接口(interface)成员中定义的可空引用类型在实现中不需要为可空的原因是什么?

    c# - MVC 4 IntelliSense 在 Visual Studio 2010 中的 Razor 中不起作用

    debugging - 如何将 Visual Studio 2010 连接到 IIS 7 以调试为现有第 3 方 Web 应用程序编写的自定义 HttpModule

    haskell - 过多的垃圾收集(和内存使用?)

    ios - Xcode 仪器错误 : "Allocations tracking library was not loaded in time"

    c# - 将 IP 转换为字节/转换回字符串

    c# - 在 View 中使用接口(interface)类型作为模型并使用真实类型属性和验证的最佳实践

    .net - 使用零字节前缀消除来解析 RSACryptoServiceProvider.ImportParameters 中的错误?

    c++ - 从函数返回后,我类的 const char* 有垃圾字符

    c++ - C++ 中是否有标准的 3d vector 类