First request takes a long time

N

Norbert Pürringer

What are the different reasons, that the very first webservice request
last a long time? In my case the first request last about 8 seconds,
the second request is processed in a few milliseconds. Is there a way
to advance the performance of the first webservice request? Calling my
webservice in IE takes a long time too, but then, every request is
processed immediately (even then, if the IE is closed and opened in
the meantime, IE is able to receive the first request very fast),
whereas my client is always a lame duck while requesting the first
request after closing and opening the client.

My webservice is written in C# (.NET 2.0)

Thank you,
Norbert
 
C

Cowboy \(Gregory A. Beamer\)

Norbert Pürringer said:
What are the different reasons, that the very first webservice request
last a long time?

It is doing JIT compilation (turning IL into in-memory code).
In my case the first request last about 8 seconds,
the second request is processed in a few milliseconds.

Sounds about right.
Is there a way
to advance the performance of the first webservice request?

There is a precompile.axd with web applications, but I am not sure if it
will walk a service. You can set up a console application that makes calls
on all of the methods and force compilation.

The best way, overall, is move your code to a separate library and then
consider ngening that assembly. There is still a JIT hit on the service
itself, but with all of the code in the library, you will find it is faster.
Of course, this makes it a bit more time consuming to switch out assemblies,
although you do have the option, if properly versioning, of sticking the
second version in the GAC before deploying the service and reducing
interruption.
Calling my
webservice in IE takes a long time too, but then, every request is
processed immediately (even then, if the IE is closed and opened in
the meantime, IE is able to receive the first request very fast),
whereas my client is always a lame duck while requesting the first
request after closing and opening the client.

This is a just an appearance thing, as IE is multi-threaded and your app
probably is not. You can fake this appearance by putting service calls on
another thread and leaving the client app responsive (repaint, etc.)
My webservice is written in C# (.NET 2.0)

Language not important here. :)
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,981
Messages
2,570,188
Members
46,731
Latest member
MarcyGipso

Latest Threads

Top