2011-04-18 2 views
0

이것은 길지만 어쩌면 누군가가 생각할 수 있습니다. IndySockets, 다중 스레드 (20-25 스레드) 웹 크롤링 응용 프로그램에서 .NET 소켓 클래스를 확장하는 라이브러리를 사용하고 있습니다. 이 앱은 여러 서버에서 실행되며 일부 서버에서는 하이퍼 스레딩이 켜져 있습니다.Indy 소켓은 하이퍼 스레드 컴퓨터에서 점차 속도가 느려짐

하이퍼 스레딩을 사용하면 처음에는 응용 프로그램의 효율성이 크게 향상되지만 (30-50 %의 속도 향상) IndySockets 호출은 점차적으로 느려지고 느려질 수 있습니다. 이것은 하이퍼 스레딩을 사용하지 않는 컴퓨터에서는 발생하지 않습니다.

문제를 더욱 혼란스럽게 만들려면 하이퍼 스레딩 된 컴퓨터를 다시 시작하는 것이 문제를 해결하는 것처럼 보입니다. 즉, 다시 시작할 때 앱이 초기 속도로 다시 실행됩니다. 응용 프로그램을 다시 시작해도 아무런 효과가 없습니다.

누구든지 의견이 있으면 감사하겠습니다. 감사.

답변

1

저는 Indy 개발 팀에 있습니다. 하이 - 스레드 컴퓨터에서 Indy를 실행할 때 나는 그런 문제에 대해 들어 보지 못했습니다. 프로파일 러를 사용하여 문제가 실제로 다른 곳의 인디가 아닌지 확인하십시오.

+0

답장을 보내 주셔서 감사합니다. 우리는 응용 프로그램의 여러 단계의 실행 시간을 모니터링합니다. 시간이 지남에 따라 느려지는 것은 IndySockets에 대한 호출뿐입니다. – Brian

+0

정확히 어떤 종류의 전화를하고 있습니까? Indy를 사용하고있는 것을 보여주기 위해 질문을 업데이트 할 수 있습니까? –

+0

우리는 주로 HttpClient의 Get 메서드와 Head 메서드를 훨씬 덜 사용합니다. 우리는 전체 페이지 내용을 읽고이어서 이것을 XML XML 모델로 구문 분석합니다. head 메소드는 간혹 페이지 리디렉션을 따르는 데 사용됩니다. – Brian

관련 문제