Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > ASP .Net > It takes around 30~60 seconds to load a aspx site for the first time.Why?

Reply
Thread Tools

It takes around 30~60 seconds to load a aspx site for the first time.Why?

 
 
Shige
Guest
Posts: n/a
 
      01-05-2004
I have a .Net website hosted on another IIS6.0. Whenever I tried to
access my website after a long time, it will take forever to load, my
browser will just show a blank white page and the progress bar is
loading so slow. However after it is loaded, the subsequent pages is
loaded up almost instantly. And even after i close my IE and reopen
again and load up the website again, it is still instantly loaded up.

Somehow the problem only appear after the website is not access for a
long period. How can i solve this problem? My IIS server is always on.

Thanks.

 
Reply With Quote
 
 
 
 
Hermit Dave
Guest
Posts: n/a
 
      01-05-2004
Okay.

A page is not a page any more in the sense of what it used to be in classic
ASP
Its a class and you instantiate an object of it when you make a request.

The way ASP.NET works is that if there is no compiled copy of the code....
the first request would essentially JIT compile the bits of assembly that
are needed.
The part that is JIT compiled depends on what run time feels you are going
to be using. That is the reason y after the first run you app runs like a
treat.
If however you do not use your app for a long time... the JIT'd version is
discarded and the next request causes JIT on your assembly to create a
native copy again.
If you do not change you code over and over, then you might want to give
ngen.exe a try.
NGen essentially does a full native compilation of your assembly and every
time a call is made to the assembly a check is made to see if there is an
existing compiled version. If you have NGen'd your assembly that would
always hold true.

But also keep in mind that native compiled assemblies are heavier.

--
Regards,

HD

"Shige" <> wrote in message
news:3ff8f6be$...
> I have a .Net website hosted on another IIS6.0. Whenever I tried to
> access my website after a long time, it will take forever to load, my
> browser will just show a blank white page and the progress bar is
> loading so slow. However after it is loaded, the subsequent pages is
> loaded up almost instantly. And even after i close my IE and reopen
> again and load up the website again, it is still instantly loaded up.
>
> Somehow the problem only appear after the website is not access for a
> long period. How can i solve this problem? My IIS server is always on.
>
> Thanks.
>



 
Reply With Quote
 
 
 
 
Alvin Bruney
Guest
Posts: n/a
 
      01-06-2004
>If you do not change you code over and over, then you might want to give
>ngen.exe a try.


ngen is mostly a bad idea outside of a web app but frequently a very, very
bad idea within the confines of the an asp.net application.

Here is why:
NGEN cannot make any assumptions for optimization for the run-time
environment than that of the JIT because the JIT is actually running in the
context of the execution environment. That alone causes NGEN to produce
sub-optimized code, if not inefficient.

Secondly, strongly named assemblies derive absolutely no benefit from NGEN
since NGEN makes an assumption on domain neutrality only for mscorlib.
Strongly named assemblies are always loaded domain neutral so the NGEN'd
file is never used to begin with.

I'd recommend instead that the startup code be streamlined to run lean and
mean reducing start up times. For instance, I sincerely doubt that JIT'ing
is responsible for this delay solely. Maybe the application is attempting to
acquire resources or initializing structures which may be contributing
heavily to this delay. Without inspecting the start up times, it is unfair
to blame it on the JIT.

--
Regards,
Alvin Bruney
Got tidbits? Get it here...
http://tinyurl.com/2bz4t
"Hermit Dave" <> wrote in message
news:%...
> Okay.
>
> A page is not a page any more in the sense of what it used to be in

classic
> ASP
> Its a class and you instantiate an object of it when you make a request.
>
> The way ASP.NET works is that if there is no compiled copy of the code....
> the first request would essentially JIT compile the bits of assembly that
> are needed.
> The part that is JIT compiled depends on what run time feels you are going
> to be using. That is the reason y after the first run you app runs like a
> treat.
> If however you do not use your app for a long time... the JIT'd version is
> discarded and the next request causes JIT on your assembly to create a
> native copy again.
> If you do not change you code over and over, then you might want to give
> ngen.exe a try.
> NGen essentially does a full native compilation of your assembly and every
> time a call is made to the assembly a check is made to see if there is an
> existing compiled version. If you have NGen'd your assembly that would
> always hold true.
>
> But also keep in mind that native compiled assemblies are heavier.
>
> --
> Regards,
>
> HD
>
> "Shige" <> wrote in message
> news:3ff8f6be$...
> > I have a .Net website hosted on another IIS6.0. Whenever I tried to
> > access my website after a long time, it will take forever to load, my
> > browser will just show a blank white page and the progress bar is
> > loading so slow. However after it is loaded, the subsequent pages is
> > loaded up almost instantly. And even after i close my IE and reopen
> > again and load up the website again, it is still instantly loaded up.
> >
> > Somehow the problem only appear after the website is not access for a
> > long period. How can i solve this problem? My IIS server is always on.
> >
> > Thanks.
> >

>
>



 
Reply With Quote
 
Hermit Dave
Guest
Posts: n/a
 
      01-06-2004
Yes i agree that ngen isnt the best option...
Yes i did mention that JIT compiles what it think is going to be requied...
if its a heavy page...with reference to a whole lot of other class then a
big chunk would need to be compiled... and then all would need to be
initialised and allocated memory.. yeap that takes time...
And no i wasnt blaming JITing process... was just trying to say how it
works....

--
Regards,

HD

"Alvin Bruney" <vapor at steaming post office> wrote in message
news:u$RSyU$...
> >If you do not change you code over and over, then you might want to give
> >ngen.exe a try.

>
> ngen is mostly a bad idea outside of a web app but frequently a very, very
> bad idea within the confines of the an asp.net application.
>
> Here is why:
> NGEN cannot make any assumptions for optimization for the run-time
> environment than that of the JIT because the JIT is actually running in

the
> context of the execution environment. That alone causes NGEN to produce
> sub-optimized code, if not inefficient.
>
> Secondly, strongly named assemblies derive absolutely no benefit from NGEN
> since NGEN makes an assumption on domain neutrality only for mscorlib.
> Strongly named assemblies are always loaded domain neutral so the NGEN'd
> file is never used to begin with.
>
> I'd recommend instead that the startup code be streamlined to run lean and
> mean reducing start up times. For instance, I sincerely doubt that JIT'ing
> is responsible for this delay solely. Maybe the application is attempting

to
> acquire resources or initializing structures which may be contributing
> heavily to this delay. Without inspecting the start up times, it is unfair
> to blame it on the JIT.
>
> --
> Regards,
> Alvin Bruney
> Got tidbits? Get it here...
> http://tinyurl.com/2bz4t
> "Hermit Dave" <> wrote in message
> news:%...
> > Okay.
> >
> > A page is not a page any more in the sense of what it used to be in

> classic
> > ASP
> > Its a class and you instantiate an object of it when you make a request.
> >
> > The way ASP.NET works is that if there is no compiled copy of the

code....
> > the first request would essentially JIT compile the bits of assembly

that
> > are needed.
> > The part that is JIT compiled depends on what run time feels you are

going
> > to be using. That is the reason y after the first run you app runs like

a
> > treat.
> > If however you do not use your app for a long time... the JIT'd version

is
> > discarded and the next request causes JIT on your assembly to create a
> > native copy again.
> > If you do not change you code over and over, then you might want to give
> > ngen.exe a try.
> > NGen essentially does a full native compilation of your assembly and

every
> > time a call is made to the assembly a check is made to see if there is

an
> > existing compiled version. If you have NGen'd your assembly that would
> > always hold true.
> >
> > But also keep in mind that native compiled assemblies are heavier.
> >
> > --
> > Regards,
> >
> > HD
> >
> > "Shige" <> wrote in message
> > news:3ff8f6be$...
> > > I have a .Net website hosted on another IIS6.0. Whenever I tried to
> > > access my website after a long time, it will take forever to load, my
> > > browser will just show a blank white page and the progress bar is
> > > loading so slow. However after it is loaded, the subsequent pages is
> > > loaded up almost instantly. And even after i close my IE and reopen
> > > again and load up the website again, it is still instantly loaded up.
> > >
> > > Somehow the problem only appear after the website is not access for a
> > > long period. How can i solve this problem? My IIS server is always on.
> > >
> > > Thanks.
> > >

> >
> >

>
>



 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Launching any web site from VS2008 takes 20 seconds DeanB ASP .Net 12 10-10-2009 09:36 PM
Internet explorer takes 2 minutes 40 seconds to load or open a new glhglh Windows 64bit 1 10-10-2008 05:35 PM
How to convert Seconds to X Hours Y Minutes Z Seconds? 00_CP_D12 ASP .Net 3 02-22-2008 10:37 AM
1. Ruby result: 101 seconds , 2. Java result:9.8 seconds, 3. Perl result:62 seconds Michael Tan Ruby 32 07-21-2005 03:23 PM
Convert seconds to minutes and seconds tshad ASP .Net 7 03-11-2005 11:27 PM



Advertisments