나는 고성능을 대상으로 경량 웹 서비스를 구현하는 HttpHandler
을 사용했다. 내용 유형이 application/x-www-form-urlencoded
인 POST
이 필요합니다. 웹 서비스는 암호 해독, 데이터베이스 작업, 비즈니스 로직 등 많은 작업을 수행합니다. 로드 테스트 중에 성능 모니터 (ANTS 및 Visual Studio)는 대부분 67 %의 시간이 걸리는 한 줄의 코드를 가리 킵니다. 코드, 성능 모니터,이 라인에 대한 호출 스택의 맨 아래에 는 ASP.NET으로 Request.Form 성능
string value = context.Request.Form[MY_FORM_KEY];
이 전화를 말한다 :
System.Web.Hosting.UnsafeIISMethods.MgdSyncReadRequest();
가 범인입니다. 누구든지 도움이
을 설명시겠습니까?! 응용 프로그램은, 릴리스로 게시 닷넷 4에 윈도우 서버에서, 7.0 2008 년
감사합니다, 조이 J. 바렛
병목 현상이 Request.Form 인덱서 인 경우 크게 놀랐습니다. 설명했던 모든 작업과 비교하면 무시할 수 있어야합니다. –
아마도 context.Request.Form을 너무 많이 참조하는 대신, 로컬 변수에 값을 복제해야 할 수도 있습니다. –
Form 변수 대신 헤더로 보내보십시오. 나는 폼 컬렉션이 더 많은 가치를 가지고 있다고 생각하고 그것을 가져 오는 것은 부피가 큰 콜을 만들고있다. 또한 솔루션을 빌드 할 때 대상 CPU를 확인할 수 있습니다. 때때로 x86으로 변경하면 System.Web.Hosting.UnsafeIISMethods.MgdSyncReadRequest() ...에서 병목 현상이 제거됩니다. – sajoshi