0
나는 성능 테스트를하고 있고 혼란스럽고 혼란스럽고 다른 사람이 약간의 빛을 비추기를 바랬다.SoapHttpClientProtocol 대 HttpWebRequest
HttpWebRequest와 SoapHttpClientProtocol 간의 성능을 비교하고 있습니다. 내 테스트에서는 SoapHttpClientProtocol 클래스가 두 배 빠르게 수행되는 것을 볼 수 있습니다. 그러나 HttpWebRequest 성능이 더 좋을 것으로 예상했습니다.
누구나 제공 할 수있는 통찰력에 감사드립니다.
샘 여기
는 HttpWebRequest를 여기
public string RetrieveValue()
{
ASCIIEncoding encoding = new ASCIIEncoding();
byte[] payload = encoding.GetBytes("sIP=");
string Url = @"url/RetrieveValue";
HttpWebRequest wr = (HttpWebRequest)HttpWebRequest.Create(Url);
wr.Method = "POST";
wr.KeepAlive = false;
wr.ContentType = "application/x-www-form-urlencoded";
wr.ContentLength = payload.Length;
wr.Timeout = 30000;
HttpWebResponse webResponse;
Stream wrStream = wr.GetRequestStream();
wrStream.Write(payload, 0, payload.Length);
wrStream.Close();
webResponse = (HttpWebResponse)wr.GetResponse();
Stream baseStream = webResponse.GetResponseStream();
string result = null;
using (StreamReader sr = new StreamReader(baseStream))
result = sr.ReadToEnd();
return result;
}
의 코드가 어떻게이 두 가지 테스트를 호출하는 SoapHttpClientProtocol
WebServiceBinding(Name = "Soap", Namespace = "http://namespace.com/")]
public class MyRetriever : SoapHttpClientProtocol
{
[SoapDocumentMethod("http://url.com/Retrieve", RequestNamespace = "http://url.com/", ResponseNamespace = "http://url.com/", Use = SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)]
public string RetrieveValue(string sVal)
{
return (string)base.Invoke("RetrieveValue",
new object[] { sVal })[0];
}
}
테스트를 반복 할 때마다 MyRetriever 클래스의 새 인스턴스를 만듭니다. – Sam