Where are the pre-JITted assemblies stored and how long?

Hello Friends,

I was reading that GAC stores the pre-JITted assemblies too, apart from the global assemblies. Is that true? Why are they stored in GAC if they are not global? How long are they stored here?

Also, if GAC stores ever the regular pre-JITted assemblies, why don't I see the assemblies that I create on my machine. I use the default JITter.

Thanks,
Srinivas
srinivas_vemlaAsked:
Who is Participating?
 
gregoryyoungConnect With a Mentor Commented:
they are precompiled to native code ...

JIT is just in time compiling ... the assembly is compiled as needed (generally stored in memory)

with an ngen'ed image ... all of that compilation is all pre-done ... thus JIT is not performed.
0
 
gregoryyoungCommented:
it happens when you run ngen.exe which creates a full native image of the managed assembly. There is a seperate part of the gac which is reserved to hold native images http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cptools/html/cpgrfnativeimagegeneratorngenexe.asp 
0
 
srinivas_vemlaAuthor Commented:
Why would I run Ngen? Is that the install-time JIT functionality?
0
 
srinivas_vemlaAuthor Commented:
Sorry, please ignore my last comment...

I just meant to ask, what these "Native images" are and how are they different from normal assemblies?

Also, say I have a HelloWorld.cs, and I compile it and create an assembly and then run it. The JIT has to cache it, right? Where is this cached?

Thanks,
Srinivas
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.