views:

35

answers:

1

We have a system that makes calls to a web service across a proxy. This is coded in C#, using HttpWebRequest. We've had problems with the speed of these calls for a long time, and I'd been trying to track it down. An unrelated conversation led to one of the operations guys to mention that the port we had been going over used firewall software that had a less-than-optimal (read: buggy) implementation for porting HTTP 1.1 calls. Sure enough, I dropped the web request to use HTTP 1.0 instead of 1.1, and the speed instantly doubled. We had already disabled keep-alive because it was just too shaky.

So, question: for the short-term, are there any variables other than keep-alive and the HTTP version that could possibly further boost speed by changing aspects of the HttpWebRequest call? I guess it's hard to tell without knowing the ins and outs of the firewall software, which I don't yet.

More importantly, they have a newer version of the software on a different port that apparently is much, much better and supports HTTP 1.1 fully. Should I expect a significant increase to response time by switching to HTTP 1.1 and keep-alives?

+2  A: 

All performance related questions have a single answer: Measure.

Guesswork is always wrong when it comes to performance (usually since the performance is bad despite the design of the system which means that you think it shouldn't be slow but it is).

Aaron Digulla
You're right. I'm learning the ins and outs of the environment and I'm trying to narrow down if there are any obvious things I could focus on before engaging other departments, but I might have no choice. Thanks for the reply!
Chris
The obvious thing is that there is something wrong with the firewall but that doesn't give you a clue what can be done about it :) You must try several things (like setting up a server on the next developer box without a firewall) and measure which approach helps how much.
Aaron Digulla