I'm trying to use NGen to see if native images of my application run better than the .NET ones. However, I'm having a little bit of trouble figuring out what to do.
My application is called MyApp.exe and it has several dependency DLLs.
I opened up the VS 2010 Command Prompt and ran:
ngen install MyApp.exe /Profile
The command output did not suggest any issues had been encountered.
I then went to C:\Windows\assembly to try and run the EXE but I couldn't find it there (I'm on Windows 7). A little bit of digging told me to use the command prompt to browse into C:\Windows\assembly\NativeImages_v4.0.30319_32. I was eventually ably to locate my MyApp.ni.exe there but of course co开发者_运维技巧uldn't open the containing folder in explorer.
I tried to run the program and it told me:
"C:\Windows\assembly\NativeImages_v4.0.30319_32...\MyApp.ni.exe is not a valid Win32 application."
The command output said Access is denied.
I had two questions:
- How can I run this program so that I can execute the native version.
- How would I go about profiling it? Looks like I won't be able to locate that folder from within the VS2010 profiler because it cannot be seen in explorer.
Thanks.
Looks like I should have read a little more. Seems like I can just execute the EXE that was passed to NGEN and it should automatically load the native stuff from the cache.
One other issue is that I had to run ngen with both the /profile and /debug flags to make sure I could do both.
This is a nice tutorial on the issue:
http://blogs.msdn.com/b/clrcodegeneration/archive/2010/04/27/ngen-getting-started-with-ngen-in-visual-studio.aspx
精彩评论