2009-09-08 7 views
1

웹 서비스가 실행되고 있으며이를 Compact Framework로 작성된 책상 응용 프로그램에서 사용합니다.웹 서비스 속도 향상

다소 느린 8 개의 결과를 검색하는 데 13 초가 걸립니다. 나는 또한 앞으로 더 많은 결과를 얻을 것으로 기대합니다. 데이터베이스 쿼리가 빠르게 실행됩니다.

두 가지 질문 : 속도 저하가 어디에서 발생하는지 어떻게 감지합니까? 타이머를 웹 서비스 코드에 넣을 수 있습니까?

네트워크 또는 응용 프로그램 코드인지 확인하고 싶습니다. 이것은 실제 환경에서 웹 서비스에 처음 노출 된 것이므로 나와 함께하시기 바랍니다.

저는 asp.net 2.0 및 C#을 사용하여 간단한 웹 서비스를 작성했습니다.

답변

0

이미 이벤트 로깅을 추가하는 올바른 경로에 있으며 타이머가 포함되어 있습니다. 참고로, 그렇게하면 시간이 지남에 추가됩니다. 따라서 범인을 추적 한 후에 제거하는 것이 좋습니다. 연결을 다시 시작하지 않고 동일한 웹 서비스 호출을 여러 번 실행하는 방법도 고려해야합니다.

-Jay

+0

다시 연결하지 않고 무엇을 의미합니까? 아직 웹 서비스에 타이머를 넣지 않았습니다.유일한 것은 타이머를 웹 서비스에 넣고 웹 서버의 로그 파일에 기록하는 것입니다. 거기에 devs를 사용하는 다른 방법이 있습니까? 그렇지 않다면, 나는 그걸로 갈 것입니다. 또한 웹 서비스를 비동기 적으로 (BeginFunctionName과 함께) 더 잘 실행하고 있습니까? – sarsnake

+0

처음 호출했을 때 13 초가 걸렸지 만 다른 입력 매개 변수 (동일한 웹 메서드)를 사용하여 호출하면 번개처럼 빠르게 호출됩니다. 웹 서비스와의 연결에 타임 아웃 매개 변수가있는 방법이 있습니까? 처음에는 너무 오래 걸리지 만 초고속 후에는 왜 그렇게 오래 걸릴까요? – sarsnake

+0

이것이 나에게 말해주는 것은, 첫 번째 WS 호출에 걸리는 대부분의 시간이 자체적으로 시작하는 WS 애플리케이션, WSDL에 대한 연결을 설정하는 소비 애플리케이션, 적절한 연결. 응용 프로그램 부팅시 WS를로드하고 싶을 수도 있습니다 (실제로는 별도의 스레드에서). 그래서 실제 호출을 할 준비가되었을 때 신속하게 처리해야합니다. – Jay

0

출발점은 당신이 CLR 프로파일을 알고 계십니까 지연이

에서 오는 위치를 확인하려면 웹 서비스를 프로파일 링하는 것입니다? 당신이 둔화의 원인이 될 수있는 DB로 서비스에서

http://msdn.microsoft.com/en-us/library/ms998579.aspx

0

데이터베이스 연결을 일어나는 상황을 확인하는 데 사용할 수있는 몇 가지 도구가 있습니다. 타이머를 추가하는 것은 트릭을해야합니다. 코드가 너무 크면 코딩 구성을보고 정확하게 어떤 것이 일 수 있는지에 대한 정보에 근거한 결정을 내릴 수 있습니다.은 느려질 수 있습니다. 그런 다음 타이머를 추가하십시오. 상황이 어느 정도 느려지는지 알게 될 것입니다.

1

다른 좋은 프로파일 러는 EQATEC Profiler입니다. 나는 여기에 그것을 적었습니다 : http://elegantcode.com/2009/07/02/eqatec-profiler-and-net-cf-profiling-and-regular-net/

그리고 그것은 .net CF 프로젝트를 찾습니다. 그러나 이로 인해 예기치 않은 장소에 성능 문제가 있는지 확인할 수 있습니다.

+0

좋은 프로파일 링 권장 사항입니다. 내 경험상 약간의 문제는 있지만 아주 좋은 결과를 제공합니다. –

0

두 가지 큰 문제점은 웹 서비스 참조를 인스턴스화하고 네트워크를 통해 모든 데이터를 전송하는 것입니다. 어떤 명백한 실수가 일어난 곳을 기다리는 동안, XML의 크기를 줄이는 방법과 웹 서비스 참조를보다 잘 처리 할 수있는 방법을 살펴 보았습니다.

컴팩트 한 프레임 워크에 대해 알고있는 모두 그것이 작동하는 고통입니다. 나는 많은 웹 프로젝트를 작업했지만 서버를 프로파일 링하여 기록 된 시간을 기록하여 로깅하는 것이 도움이 될 것입니다. 그러나 모든 시간이 포스트 서버 응답을 받으면 서버가 빠르게 작동하고 있음을 증명하는 것 이상의 효과가 없습니다.

SoapUI은 웹 서비스를 소비하는 환상적인 자바 응용 프로그램입니다. 그것은 시간 메트릭을 포함하여 많은 기능을 가지고 있습니다. 나는 그걸로 시작해서 당신의 고객이 될 것과 똑같은 것을 소비하는 데 얼마나 걸리는지 알아 보겠습니다. 거기에 문제가 있으면 위에서 추천 한 것으로 시작하십시오.