Ngen和性能分析

6
我想使用NGen来确定本地镜像是否比.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应用程序。"
命令输出说“拒绝访问”。
我的两个问题是:
1.如何运行此程序以执行本机版本。 2.我该如何进行分析?看起来我将无法从VS2010分析器中定位该文件夹,因为它在资源管理器中无法看到。
谢谢。

1
请注意,NGEN仅替换JIT步骤 - 它仍然是托管应用程序等。如果您遇到冷启动性能问题,则可能会有所帮助,但在大多数情况下,NGEN不会有所帮助。它不会使您的循环等更快。 - Marc Gravell
应用程序本身相当庞大,因此我正在尝试找出如何使其更具性能的方法。如果NGEN实际上没有帮助,那也完全可以,但我只是想尽到自己的职责。 - sohum
先对您的应用程序进行分析(不使用NGEN),了解其性能瓶颈。然后再采取行动,否则浪费的时间可以用于使其更快。我坦率地说,我不认为NGEN在这方面会有太大帮助。 - Marc Gravell
2
我已经对应用程序进行了非NGEN的分析。还有其他几个开发人员正在努力分析应用程序并消除其他低效代码。无论NGEN是否有帮助,尝试使用它以查看是否确实提供任何改进是尽职调查的一部分。 - sohum
1个回答

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接