Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net ngen和仿形_.net_Visual Studio 2010_Profiling_Ngen - Fatal编程技术网

.net ngen和仿形

.net ngen和仿形,.net,visual-studio-2010,profiling,ngen,.net,Visual Studio 2010,Profiling,Ngen,我正在尝试使用NGen来查看我的应用程序的本机映像是否比.NET映像运行得更好。然而,我在想该怎么办时遇到了一点困难 我的应用程序名为MyApp.exe,它有几个依赖DLL 我打开VS 2010命令提示符并运行: ngen install MyApp.exe /Profile 命令输出未表明遇到任何问题 然后我转到C:\Windows\assembly尝试运行EXE,但在那里找不到它(我在Windows 7上)。经过一番挖掘,我知道要使用命令提示符浏览C:\Windows\assembly\N

我正在尝试使用NGen来查看我的应用程序的本机映像是否比.NET映像运行得更好。然而,我在想该怎么办时遇到了一点困难

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

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

ngen install MyApp.exe /Profile
命令输出未表明遇到任何问题

然后我转到C:\Windows\assembly尝试运行EXE,但在那里找不到它(我在Windows 7上)。经过一番挖掘,我知道要使用命令提示符浏览C:\Windows\assembly\NativeImages\u v4.0.30319\u 32。我最终能够在那里找到我的MyApp.ni.exe,但当然无法在资源管理器中打开包含它的文件夹

我试着运行这个程序,它告诉我:

“C:\Windows\assembly\NativeImage\u v4.0.30319\u 32…\MyApp.ni.exe不是有效的Win32应用程序。”

命令输出表示访问被拒绝

我有两个问题:

  • 如何运行此程序以便执行本机版本
  • 我将如何着手分析它?看起来我无法从VS2010探查器中找到该文件夹,因为它无法在资源管理器中看到

  • 谢谢。

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

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

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


    注意:NGEN仅取代JIT步骤-它仍然是一个托管应用程序等。如果您有冷启动性能问题,这可能会有所帮助,但在大多数情况下,NGEN不会有帮助。它不会使你的循环等更快。应用程序本身相当大,所以我只是想弄清楚如何使它更高效。如果NGEN实际上没有帮助,那也没关系,但我只想先做我的尽职调查.profile(你的应用程序,现在没有NGEN)。然后(也只有那时)行动。否则,你是在浪费时间,而这些时间本可以花得更快。老实说,我不希望NGEN在这里有多大帮助。我已经分析了没有NGEN的应用程序。还有其他几个开发人员正在对应用程序进行评测,并消除其他低效的代码。NGEN是否提供帮助并不重要——尽职调查的一部分实际上是尝试看看它是否真的提供了任何改进。