G
Georgy Malyshev
Hello, All!
I have a simplistic ASP application, only default.asp file without
any scripts just HTML to say "Hello world!". It is running under
IIS 5.1 on XP SP2 machine. I also have some simplistic ISAPI
extension DLL as reference point for my performance measurements.
My client is a console application using WinInet API. Later I also
wrote C# console application just to sure I made no mistakes in
WinInet calls but it didn't change performance results I'm going
to describe.
I have four test cases:
- measure total access time to ASP page using GET verb;
- measure total access time to ASP page using POST verb;
- measure total access time to ISAPI DLL using GET verb;
- measure total access time to ISAPI DLL using POST verb;
In my measurements I do first call and then do a number of
calls with some delay between them (changing delay in the
range 0-2000 mSec doesn't change the entire picture). Timing
for the first call I just disregard.
When I run the client on my local machine I have total access
time about 2-3 mSec for all four test cases.
When I run the clinet on abother machine on our LAN I have
the same 2-4 mSec except ASP POST test case. I takes about
200 mSec and in tcpdump I see something like this:
ISAPI POST:
client POST -> serever
.... less than 1 mSec
client <- server 100 continue
... about 1 mSec
client <- server 200 OK
ASP POST:
client POST -> serever
.... less than 1 mSec
client <- server 100 continue
... about 200 mSec
client <- server 200 OK
So delay is clearly on the server side. I'm a newbie to ASP
and can only suspect that for remote request IIS does some
kind of authorization work.
I've tried to play with anonymous/NTLM athentication and
low/med/high isolation but it doesn't change the picture.
Any advises?
With best regards, Georgy Malyshev.
I have a simplistic ASP application, only default.asp file without
any scripts just HTML to say "Hello world!". It is running under
IIS 5.1 on XP SP2 machine. I also have some simplistic ISAPI
extension DLL as reference point for my performance measurements.
My client is a console application using WinInet API. Later I also
wrote C# console application just to sure I made no mistakes in
WinInet calls but it didn't change performance results I'm going
to describe.
I have four test cases:
- measure total access time to ASP page using GET verb;
- measure total access time to ASP page using POST verb;
- measure total access time to ISAPI DLL using GET verb;
- measure total access time to ISAPI DLL using POST verb;
In my measurements I do first call and then do a number of
calls with some delay between them (changing delay in the
range 0-2000 mSec doesn't change the entire picture). Timing
for the first call I just disregard.
When I run the client on my local machine I have total access
time about 2-3 mSec for all four test cases.
When I run the clinet on abother machine on our LAN I have
the same 2-4 mSec except ASP POST test case. I takes about
200 mSec and in tcpdump I see something like this:
ISAPI POST:
client POST -> serever
.... less than 1 mSec
client <- server 100 continue
... about 1 mSec
client <- server 200 OK
ASP POST:
client POST -> serever
.... less than 1 mSec
client <- server 100 continue
... about 200 mSec
client <- server 200 OK
So delay is clearly on the server side. I'm a newbie to ASP
and can only suspect that for remote request IIS does some
kind of authorization work.
I've tried to play with anonymous/NTLM athentication and
low/med/high isolation but it doesn't change the picture.
Any advises?
With best regards, Georgy Malyshev.