Variable JIT of ASPX files?

  • Thread starter Thread starter Glen
  • Start date Start date
G

Glen

As I understand it, when the first page of an application is accessed, all
ASPX/ASCX/etc. files in the same folder are compiled using the JIT compiler.

Is there a way to turn this feature off?

As a developer, I am sometimes working on a single file that is in a folder
with many (dozens or hundreds) of other files. After rebuilding the project,
I want to look at that one ASPX file. However, I must always wait for all
the other ASPX files in the folder to also be compiled.

I accept that this is good for most web sites, but during development, I
only want the page(s) I access to be compiled.

Is that possible?

Glen
 
As I understand it, when the first page of an application is
accessed, all ASPX/ASCX/etc. files in the same folder are
compiled using the JIT compiler.

Glen,

That's not correct. You can see what ASP.NET is doing by examining
the temporary ASP.NET folder during your program's execution. The
folder is located at:

C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\Temporary ASP.NET
Files\<YOUR APP'S NAME>\64f05764\576f54e7

The names of the last two subfolders are random numbers, and will be
different on your system.

Start your application, then navigate to that folder using Windows
Explorer. (If Windows Explorer already has that folder open when the
app starts, ASP.NET may throw an error).

Access a page on your site. Check the folder for new files ASP.NET
generated. For example, when I accessed the login page on my site,
seven new temporary files were generated by ASP.NET on the fly (.cs,
..cmdline, .dll, .err, .out, .pdb, and .res).
As a developer, I am sometimes working on a single file that is
in a folder with many (dozens or hundreds) of other files. After
rebuilding the project, I want to look at that one ASPX file.
However, I must always wait for all the other ASPX files in the
folder to also be compiled.

Is that really the case? If all of the pages are being compiled,
their associated temporary files will show up in the temporary
folder. If that's not happening, then something else is causing the
delay.


Hope this helps.

Chris.
 
Okay...

1. I completely emptied the temporary folder.

2. I rebuilt the application (which builds the main assembly DLL(s)) -
nothing new in the temp folder

3. I accessed one page in the application root folder. After about a 6
second delay for the JIT, the page appeared. The temp folder now has a tree
of folders with a total of 13 folders, 26 files using 2,181 KB of space.

4. I accessed another page in the same root folder. No delay.

5. I accessed a page in a subfolder. There was a short delay (4 sec?). Now,
the temp folders tree has 91 files using 2,483 KB.

6. Another page in same subfolder. No noticable delay. Temp folders now have
99 files.with 2,551 KB.

7. Access a page in a different subfolder. Short delay of about 4 seconds.
Temp folders now have 140 files, 2,735 KB.

8. Access another page in same subfolder. Very short delay. Now have 148
files, 2,795 KB.


So, I suspect my understanding was wrong.

Not every page in a folder is compiled on first access. Each page seems to
be compiled to a DLL when it is first accessed. However, the first page in a
folder does take a lot longer to compile than other pages.

Is there anyway to expedite this process?



Warning! After step 8, I recompiled the Solution. It looks like it tried to
delete the temporary folder, but I had it open in Explorer. Now, the two
numbered folders are still there and cannot be accessed or deleted, even by
an Administrator. Also, the application cannot start, since it also tries to
write to that temp folder! I'll reply to this note when I get this
resolved.

Glen
 
Back
Top