views:

334

answers:

2

With a 150 *.dll ASP.NET website that's precompiled (updatable), what are some possible causes for a '% Time in JIT' that is often quite high (> 60%) and fluctuating long after the application has warmed-up (all functionality accessed) and without app restarts or file changes that might generate new assemblies?

One would expect that the machine code generated for all assemblies would be re-used for the duration of that app-domain. Is there a finite size to the volume of machine-code that's cached? Under what scenarios would the same assembly need to be re-JIT'd in the same app domain? Or is it necessarily the case that new assemblies are being generated? Do factors such as memory pressure impact this performance counter?

Reference:

+1  A: 

It could be anything that does assembly emit. Linq Expressions compile, or regular expressions, that are not being cached correctly.

George Polevoy
Jeremy McGee
A: 

If you are setting cache parameters, you may be inadvertently disabling the precompiled server-side cache. Take a look at this article:

http://codeclimber.net.nz/archive/2007/04/01/Beware-the-ASP.NET-SetCacheability-method.aspx

umbyersw